Hallo,
Klar habe ich schon mal einen Parser für ST geschrieben (für
CoDeSys). Die Frage ist, was einem das bringt. Einen Parser für ST zu schreiben ist relativ simpel, wenn man
Programmiererfahrung hat und nicht besonders viel Wert auf Performance legt. Richtig schwierig ist es, gute Fehlermeldungen auszugeben.
Literatur zum Compilerbau gibt es en masse, und du wirst nicht drumrumkommen dich da einzulesen. Ich würde LEX und YACC empfehlen, auch wenn wir das für uns nicht nutzen.
Aber das Problem ist vielmehr was man mit dem Ergebnis des Parser macht: vermutlich einen Crosscompiler nach C.
Dann brauchst du also doch noch einen C-Compiler. Alles was über reine Syntaxfehler rausgeht (Variable nicht definiert, Kann long nicht nach int konvertieren, etc) wirst du
in deinem C-Generat suchen müssen, dann in ST beheben, dann nochmal zwei Compiler anwerfen, dann ärgern wegen eines Tippfehlers, dann...
..kurz gesagt: schreib deine Applikationen in C.
Bernhard