Frage

Wenn Sie einen AT-Befehl sendet es normalerweise von \ r \ n beendet ist, aber in der Tat, diese sind wirklich zwei 'Register Variablen' S3 und S4.

Standardmäßig S3 == '\ r' und S4 == '\ n', aber der Benutzer kann diese zur Laufzeit mit dem Befehl ändern ATSx =

Wie kann ich damit umgehen in meine Antlr Lexer / Parser?

Jeder Befehl hat die Form AT [Parameter] S3S4, wie kann ich damit umgehen, dass, wenn der Benutzer ändert den Wert von S3 oder S4?

Vielen Dank im Voraus für jede Hilfe ...

War es hilfreich?

Lösung

Nein, gibt es keine solche Option dynamisch AFAIK lexer- oder Parser-Regeln zu ändern. Natürlich gibt es Workarounds möglich wie neu zu erstellen, die Lexer / Parser beim Ändern Registervariablen ist, aber es wird nicht schön sein, ich denke ...


Bearbeiten

  

mawg schrieb

     

neu zu erstellen, die lexr & poarser (na ja, Lexer nur, ich denke) - könnte man auf dem leaborate

Umschreiben der ursprüngliche Grammatikdatei (nur die Lexer Regeln, wie Sie richtig erwähnen) und im laufenden Betrieb neu zu kompilieren. Siehe: http://java.sun.com/ JavaSE / 6 / docs / api / javax / tools / JavaCompiler.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top