Динамическое обновление правил во время выполнения - PullRequest
0 голосов
/ 03 декабря 2009

При отправке AT-команды она обычно заканчивается \ r \ n, но на самом деле это действительно две «регистровые переменные» S3 и S4.

По умолчанию S3 == '\ r' и S4 == '\ n', но пользователь может изменить их во время выполнения с помощью команды ATSx =

Как я могу справиться с этим в моем лексере / парсере Antlr?

Каждая команда имеет форму AT [параметры] S3S4, как мне справиться с этим, если пользователь изменяет значение S3 или S4?

Заранее спасибо за любую помощь ...

1 Ответ

1 голос
/ 08 декабря 2009

Нет, такой опции для динамического изменения правил лексера или парсера AFAIK нет. Конечно, возможны обходные пути, такие как пересоздание лексера / парсера при изменении переменных регистра, но я думаю, это будет не очень красиво ...


Редактировать

Мог написал

воссоздание lexr & poarser (ну, я полагаю, только lexer) - не могли бы вы развлечься?

Переписать исходный файл грамматики (только правила лексера, как вы правильно упомянули) и перекомпилировать его на лету. Смотри: http://java.sun.com/javase/6/docs/api/javax/tools/JavaCompiler.html

...