Quantcast
Channel: AutoIt v3 - Developer Chat
Viewing all articles
Browse latest Browse all 750

AutoIt inspired Scripting language I'm making

$
0
0

Hello I want to start off by saying I have the greatest respect for AutoIt and its developer I've used it for many years and it's saved my ass countless times I've used it since the beginning infact and I have huge complex scripts to prove it such as Bots and all kinds of automation stuff (I can post if you want lol).

I love AutoIt but I always felt it was lacking certain features that I missed a lot from Perl/PHP/C#/C++ I tried using the AutoIt DLL to embed AutoIt into projects I was doing but I found the DLL deeply lacking and with a deep inability to customize the functions that DLL gives really upset me.

I decided to try make my own little script language to try bridge the gap between my favourite general programming language and AutoIt scripting a kind of glue if you will.

Evenutally it grew from being a simple glue to its own individual scripting language that handles every function internally and does not use anything from AutoIt.

It was not easy making such a complex language that would incorporate all the best stuff from AutoIt and all the best stuff from other languages I love such as classes/arrays from PHP, Regexes from Perl and so on.

The result of my work (the past 2 years of work infact) is Sputnik.

I have tried to make Sputnik as friendly for AutoIt users as possible (similar function names etc) so people can test stuff and see if they like/hate it.

Sputnik Scripting Language a simple easy to use beginner friendly language created to be have as much stuff from all my favourite languages as possible in one place.

This was made as a fun project to try produce a scripting language that did everything I need to do.

Sputnik is already proving to be a lot of fun and very easy to use and very powerful!
It is fully useable.

A list of some of the things Sputnik supports:
* Ability to make GUI programs that support infinite amounts of Windows running at once
* PHP Style syntax using curly braces {}
* Enums like C++
* Approx 700 functions, 50 or so operators and many casts
* Dynamically unload functions/classes from your running program and reload them back again from source code allowing full complete updates to the source of your program while it is still running
* Try/Catch/Finally with ability to create exceptions even extended ones using the internal class
* Can assign hotkeys to run scripts/functions anything they can be simple hotkeys or very complex hotkeys
* The $variable can be any of the following: char, bool, byte, sbyte, int16, int32, int64, uint16, uint32, uint64, float, double, string, array, ref
* Ability to make Macros to control Windows/Buttons/Objects/Mouse/Keyboard (Bascially like as AutoIt) can send text to applications etc etc
* Classes with ability to extend them and multiple inheritance every operator and cast can be overloaded in the Classes
* Multi-threading with ability to spawn/speed/kill threads and even define areas of code as Locked so stop two threads running it at once
* Can make GUI programs with buttons and all kinds of stuff even MDI interfaces
* Very easy to use Array system that works exactly like PHPs no need to redim etc etc
* Support for calling DLL functions and even pass arrays as individual arguments and even inline C code directly into your script
* Perl style regexes using same syntax as Perl $var =~ //; etc
* Support for complex Parsers using Rules and Terminals (Sputnik's parser function can even be used to parse Sputniks own code)
* Type checking like $var ~~ Int32
* Binary features to handle Binary data with Pack() Unpack() (similar to PHP/Perl) and over 40 binary functions
* Stream functions similar to binary but faster if you want to do loads of appending/inserting
* Many math functions
* Around 60 string functions
* DLLCall can call single functions but DLLImport can load thousands at a time and even save them as newly compiled DLL for faster loading speed
* Can capture console output of executed third party programs
* Many file creation/read/write frunction
* Many directory/path functions
* Ability to create UDP/TCP raw sockets for creating client/server programs
* Includes an additional easy to use beginner friendly powerful internal Client/Server series of functions making producing client/servers a breeze
* Many memory read/write functions for Trainer creation and game hacking
* Many memory function to alloc, free, modify in many ways
* Get/Set clipboard data
* MsgBox/InputBox
* Can hook messages to improve your macros like mousehooking/keyhooking
* All the familure Win___() functions from AutoIt you would expect WinActive, WinList its all there
* All the Control___() functions from AutoIt you would expect
* Pixel functions such as searching for pixels on screen for creating AimBots
* Call functions by name with params or arrays of params
* Dynamically create source code/functions while your program is running and execute that code
* Dynamically create a function on a $variable and execute it like: $Func =  Function( $a, $b ){ println("Value is: " . ($a + $ [B)] ); }; CallFunc($Func, array(10, 20));
* Ability to throw exceptions/die
* Ability to include/require and optionally once
* Opt() like AutoIt to set any options you desire like WinTitleMatchMode
* Comes with a small but growing library of functions/classes made in Sputnik that includes vector3 class, parses etc creating C dlls/exes etc

* Sputnik fully parses the scripts before it starts executing code so you dont *bump* into an error later you get it right in your face straight away.

* Supports global variables like: Global $value = "hello";

* Supports local variables like: my $value = "hello";

* Supports scoped variables inside braces if() { my $value = "hello"; }

* Supports Lists like:  List ($name, $id) = Split($str, '|');

and many many more.... see the wiki

I have created a wiki for Sputnik where I place all its functions and operators etc etc the link is:
http://uberfox.no-ip.org/Sputnik/wiki

The "Function Reference" page on the wiki contains every function found in Sputnik with example code you can copy and paste.

I would be happy if you could try it out and tell me if you like it or dont like it whatever I made it for myself and in the whole time it's existed only me and my friend have actually used it nobody else but I would like to see if anybody else is interested... Or not...

If you decide to take a look I would greatly appreciate bug reports and any advise/function requests you wish.

You can e-mail me at
uberfox@hotmail.com


Viewing all articles
Browse latest Browse all 750