Я работаю над грамматикой, которая учитывает ключевые слова в качестве идентификаторов, и текущее предложение, похоже, делает что-то вроде:
id : 'if'|'call'|'then'|ID;
В моем языке много ключевых слов, поэтому я ужеделать:
id: ~(PLUS | MINUS);
В основном любой токен, который НЕ является токеном без ключевых слов.
Есть ли способ сделать так, чтобы все мои токены ключевых слов были дополнены каким-либо совпадением строки и символа подстановки?например,
K_PLUS: '+';
K_MINUS: '-';
ID: <everything else>;
id : ID | ~(K_*);