Caution
This repository is now archived. It is an old copy of the codebase over at https://github.com/Unknown6656/AutoIt-Interpreter.
Comparison between the old repo (this one) and the new one (https://github.com/Unknown6656/AutoIt-Interpreter):
Category | new AutoIt3 Interpreter | old AutoIt++ Interpiler |
---|---|---|
Supported Language | Strict AutoIt 3 with extension support |
AutoIt 3 AutoIt++ |
Works as an ... | Interpreter | Interpiler/Transpiler: 60% compiler, 30% interpreter, 10% magic |
Written in | C#, F# | C#, F# |
Target Framework | .NET 8 and newer | .NET Core 2.1 |
Works on Windows | Yes | Yup |
Works on Linux | Yes | Kinda |
Works on MacOs | Yes | Kinda |
Status | In development | Discontinued, Beta-ish |
One should call this project "AutoIt++ Interpiler", as it is an interpreter from a C#'s point of view - but works more like a compiler when viewing it from AutoIt's side....
It kind of interprets everything and transforms it into C# code, which then gets compiled. My component is therefore an interpreter - but the whole project is technically a compiler.
So we call it an Interpiler for now...
This project is an Interpiler written to target a custom flavour of the AutoIt3 scripting language called "AutoIt++" (even though it has nothing to do with C++).
The most important aspect of this project is the fact, that the Interpiler is not only platform-independent, but can also cross-platform and cross-architecture target applications.
The Interpiler can currently target the following systems (can be specified via the flag -t
):
win7
,win8
,win81
,win10
centos
,fedora
,gentoo
,opensuse
debian
,ubuntu
,linuxmint
osx
android
coming soon- and much more...
The following architectures are currently supported:
x86
,x64
(The 32Bit- and 64Bit-compatible systems from Intel or AMD)arm
,arm64
(ARM's equivalent)
For more information about the usage of the Interpiler, refer to the usage page.
- Usage page
- AutoIt++ Language reference
- AutoIt++ Syntax reference
- AutoIt++ Runtime behaviour
- AutoIt++ Syntax tree reference
- Official AutoIt3 documentation
- The TODO list
This AutoIt++-Interpiler is written in C# and F# targeting the .NET-Core Framework in order to provide full platform independency.
A big shoutout to the Roslyn Dev Team and the .NET Core Dev Team for making such an awesome framework possible!
It uses a modified version of the Piglet-Library written by @Dervall in order to improve expression parsing. All credits go to him for the wonderful LR-Parser-Library!!
- @Unknown6656
- (@Zedly / @wickersoft in assistive and advisory function)
Don't change the code of anonymous, dynamic types during runtime debugging: