Я использую возвращает для моих правил парсера, который работает для всех правил парсера, кроме первого. Если первое правило парсера в моем грамматике использует декларацию возвращает, ANTLR4 жалуется следующим образом:
ожидание ARG_ACTION при сопоставлении правила
Если я добавлю еще одно правило анализатора, выше которого не используется "возврат", ANTLR не жалуется.
Здесь у вас есть грамматика, сведенная к проблеме:
grammar FirstParserRuleReturnIssue;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*;
aRule returns [String s]: ID { $s = $ID.text; };
Я искал особую роль первого правила, которое могло бы объяснить поведение, но ничего не найдено. Это ошибка? Мне не хватает понимания?