Я хочу сгенерировать код C. Я не буду читать из входного файла, по одной строке за раз (как, например, компилятор). Скорее, я буду разбирать пользовательский ввод по мере его поступления, по одной строке за раз.Ищет очень простой пример обработки ошибок ANTLR при генерации кода C
Я бы предпочел, чтобы обнаруживать и обрабатывать плохой вход в лексером/парсер, например
/* lexer tokens */
foo : "FOO";
bar : "BAR";
baz : "BAZ";
/* grammar*/
grammar : foo "=" BAZ
| foo "=" BAR
| <some non-existent Antrl-else> : {printf(stderr, "bad input\n");}
;
ОК, если я не могу поймать его в лексером/парсер, похоже, мне нужно использовать displayRecognitionError()
но как??
Может ли кто-нибудь указать мне на очень простой пример, который генерирует код C и показывает некорректную обработку недопустимого ввода?
Спасибо!
Хорошо, щедрость, юпитер!
Но только для реального рабочего ответа с реальным рабочим кодом. Нет «использовать метод X()» без wxample.
FYI: эта награда будет отправляться на ответ с наибольшим количеством голосов после истечения срока, независимо от того, принимаете вы ответ или нет. –
Возможно, эта тема поможет: http://markmail.org/message/pumvrybnhvfme5h6#query:rulecatch%20antlr%20c+page:1+mid:3jjjdzbecknrq644+state:results (обратите внимание на различные ответы, отправленные на этот вопрос!) –
Я вижу, что вы используете printf в своем примере. Является ли язык, на котором вы используете C или C++? – chollida