Можно ли добавить к грамматике слово, которое нельзя применить в правиле лексера? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть грамматика вроде:

assignment: NAME ':=' (value | operation | boolean_value);
NAME: [a-zA-Z]+;

И я хочу запрограммировать true := 4, но это не так.

Я хочу в грамматике сказать, что слово true нельзя применять как NAME.

1 Ответ

1 голос
/ 25 апреля 2020

Затем определите его как ключевое слово:

assignment: NAME ':=' (value | operation | boolean_value);

TRUE : 'true'; 
NAME : [a-zA-Z]+;

или выполните семантику c проверки слушателя или посетителя .

...