Я пытаюсь поместить действия в грамматику функции C
, но получаю ошибку. Например:
expressionStatement returns [String value]
: expression? ';' {$value = (($expression.value != null)?$expression.value:"") + ";";}
;
Пожалуйста, ознакомьтесь с приведенным выше правилом и дайте мне знать, правильно ли я поступаю, возвращая значение выражения. Обратите внимание, что правило имеет условие (?
). Грамматика правильно запускается с antlr
для создания файлов Java, и файлы Java также скомпилированы правильно, но когда я запускаю ее с кодом для анализа, она дает исключение нулевого указателя.
Пожалуйста, ответьте мне в ближайшее время, как я могу правильно написать действия в этом случае?