Итак, я разбираю команды Hayes modem AT. Не читается из файла, но передается как char * (я использую C).Обработка недопустимого ввода в Lexer/Parser
1) что произойдет, если я получу то, что полностью не признаю? Как мне это обработать? 2), что если у меня есть что-то вроде
my_token: "cmd param=" ("value_1" | "value_2");
и получить недопустимое значение «PARAM»?
Я вижу несколько советов, позволяющих программе back-end (в C) обрабатывать ее, но это идет против зерна для меня. Поймай эту проблему как можно раньше, мой девиз.
Есть ли способ поймать «другие» условия в правилах lexer/parser?
Заранее спасибо ...
Теперь это больше похоже на это. Кроме того, конечно, это для Java. Когда я смотрю в сгенерированном код C, я вижу
Проблемы заключается в том, конечно, что я не хочу, чтобы редактировать сгенерированный код C в случае, если я нахожу ошибку в лексическом анализаторе или парсер правило, регенерировать код & потерять мои изменения. Вот почему я хотел бы что-то в файле Antlr как – Mawgпример говорит
Но как я могу это осуществить? есть одно правило для допустимого ввода, за которым следует одно, где я подстановил токены? Спасибо за ваш helkp до сих пор, вы приближаете меня к нему ... – MawgИли мне нужно переопределить recoverFromMismatchedToken (()? – Mawg