Предположим, что ID1 может соответствовать некоторым дополнительным символам, которые недопустимы в ID2. Предположим, @. В этом случае identifier2 будет соответствовать этому также. Я не хочу, чтобы identifier2 соответствовал этому.

я есть правила лексера в Antlr3 как:

HYPHEN : '-';

TOKEN : HYPHEN CHARS;

CHARS : 'a' ..'z';

Правило парсера таково:

exp : CHARS | some complex expression;
parser_rule : exp HYPHEN exp;

Если я попытаюсь сопоставить 'abc-abc' с parser_rule, произойдет сбой. Потому что лексер создает TOKEN для HYPHEN exp. Как я могу сопоставить его правильно с parser_rule.

Ответы на вопрос(1)

Ваш ответ на вопрос