Я новичок в ANTLR. Я начал изучать учебники ANTLR. Я видел пример, в котором тип возврата был определен для суточного правила (см. Ниже пример).ANTLR: правила с аргументами?
Могу ли я передать аргумент правилу? Я просто понял, что хочу изменить поведение правила в перкулезном состоянии на основе предоставленного ему аргумента.
, пожалуйста, помогите мне, если он пройдет в ANTLR, или это хорошая идея?
atom returns [int value]
:
INT
{
$value = Integer.parseInt($INT.text);
}
| ID // variable reference
{
Integer v = (Integer) memory.get($ID.text);
if (v != null)
$value = v.intValue();
}
;
Имейте в виду, что каждое использование этого функция сделает переход к ANTLR 4 более сложным, когда использование заданных пользователем аргументов и возвращаемых значений в грамматике в лучшем случае «обескуражено». –