2009-12-03 2 views
0

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

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

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

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

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

+0

Никто не знает? Heeeeelp !!!! Пожалуйста ... – Mawg

ответ

1

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


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

mawg написал

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

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

+0

re-creation lexr & poarser (ну, только лексер, я думаю) - не могли бы вы заняться этим? – Mawg

+0

Я разбираю набор команд ATE Hayes. AT-команды четко определены, и я могу полностью их покрыть правилами lexer/parser. Как я уже говорил, каждая строка обычно заканчивается \ r \ n, но они находятся в регистрах S3 и S4, которые пользователь может изменить. Я никогда не видел ничего, кроме «пустых» и \ n, но теоретически они могли быть вообще чем угодно ... – Mawg