Syntax / Spezifikation

09/17/2013 16:53 Tasiro#1
Die Regeln von AutoIt sind unklar, es gibt in die Operatorrangfolge keine Einordnung der Aufruf- und Feldindizierungsoperatoren (() und []), aber des NOT-Operators; es wird keine Operator-Assoziativität angegeben. Sie sind ebenfalls z. T. verwirrend, etwa die zwei Gleichheitsoperatoren die (lexikalische) Gleichheit des einen mit dem Zuweisungsoperator.
Auch die Bedeutung der Standardfunktionen ist alles andere als eindeutig, so nimmt Execute ein "expression" entgegen - wird offenbar wie ein r-value ausgewertet, und es scheint in Eval und Assign keine Beschränkung für den Namen der Variable zu geben ("Assign ('+', '3') : Eval ('+')" => 3).

Also frage ich: Gibt es eine Spezifikation von AutoIt, wie es bei so gut wie jeder künstlichen Sprache der Fall ist? Oder zumindest eine Syntax in BNF oder einem Derivat?
09/17/2013 18:11 lolkop#2
Soweit mit bekannt, gibt es keine öffentliche Spezifikation von Autoit.
Bei Interesse am besten direkt [Only registered and activated users can see links. Click Here To Register...] nachfragen.

Die fehlende Einschränkung der Namensgebung von Variablen mit Assign und Eval sollte eigentlich als Bug an die Entwickler von Autoit gemeldet werden.
09/17/2013 20:59 Tasiro#3
Quote:
Originally Posted by lolkop View Post
Soweit mit bekannt, gibt es keine öffentliche Spezifikation von Autoit.
Nicht so gut. Dann wird es Zeit.

Quote:
Originally Posted by lolkop View Post
Bei Interesse am besten direkt [Only registered and activated users can see links. Click Here To Register...] nachfragen.
Ich danke.

Quote:
Originally Posted by lolkop View Post
Die fehlende Einschränkung der Namensgebung von Variablen mit Assign und Eval sollte eigentlich als Bug an die Entwickler von Autoit gemeldet werden.
Interessant, es scheint auch noch nicht gemeldet worden zu sein.
09/18/2013 01:01 lolkop#4
Quote:
Originally Posted by Tasiro View Post
Interessant, es scheint auch noch nicht gemeldet worden zu sein.
Richtig und auch wenn es keine öffentliche Spezifikation gibt, so gibt es durch die Hilfe zumindest eine Recht detailierte Dokumentation, welche im Bezug auf Variablen folgendes aussagt:
Quote:
Each variable has a name (again, similar to a mailbox) and must start with the $ character and may only contain letters, numbers and the underscore _ character.
Womit dieser Fehler zumindest gegen die Dokumentation verstößt.