Это грамматика ANTLR4:
/* Parser rules */
statement: A '='? B;
/* Lexer rules */
A: ...
B: ...
... соответствует A B
и A = B
.
Если я сделаю посетителя:
public String visitStatement(StatementContext ctx) {
...
}
Как проверить, соответствует ли содержимое A B
или A = B
(точнее, было ли сопоставлено =
или нет)? Я могу сделать это:
ctx.getChild(1).getText().equals("=")
но это кажется слишком хакерским и не работает, если случается, что текст B
- "=
". Есть ли приемлемый способ сделать это?