So, ich kündige dann mal an, dass ich wohl demnächst eine Alpha-Version des Konverters herausbringen werde.
Zur Zeit fehlen von den wichtigen Sprachelementen nur noch Arrays.
Da es noch Alpha ist, sind Funktionen natürlich nur begrenzt vorhanden, also hauptsächlich mathematische und Stringfunktionen, sowie Ausgabe für Tests (MsgBox, ConsoleWrite, IniWrite).
Für alle, die es interessiert, stelle ich hier mal das Konzept vor:
Das AutoIt-skript wird vom Konverter eingelesen und alle AutoIt-Elemente werden in C++-Elemente umgewandelt. Vieles kann dabei so stehen bleiben, z.B. wird die Codezeile
($a+$b)*$c
[/autoit]genauso übersetzt.
Das konvertierte Script wird dann mit einem ganzen Satz von Header-files compiliert. Diese Header sind sozusagen die UDFs von C++. Darin ist der Typ definiert, den die AutoIt-Variablen haben, also ein Typ, der je nach Situation Integer, String, Float, etc. sein kann und darin sind auch die Standard-Funktionen von AutoIt.
Da das Compilen etliche Minuten dauern würde, sind in den Headern nur jeweils die Prototypen, aber was die Funktion genau macht, wird woanders definiert, nämlich in einer statischen Bibliothek. In dieser wurden die Funktionen schon alle compiled und müssen dann nur noch mit dem gerade konvertierten Skript zu einer Exe-Datei verbunden werden.