Определите имя переменной за исключением зарезервированного worsd в компиляторе - PullRequest
0 голосов
/ 10 октября 2011

Я пытаюсь сделать лексер для подмножества Java с JavaCC.И имя переменной может быть любой комбинацией буквы, цифры и _, начиная с буквы.У меня есть только одна проблема, зарезервированные слова (такие как int, new, ...) не могут использоваться в качестве имени переменной, и мне было интересно, как это объявить.Прямо сейчас у меня есть это, где зарезервированные слова объявляются сначала, а затем правило для имен переменных, достаточно ли оно, и тогда парсеру придется иметь дело с ним?для имени переменной.

Спасибо и спросите меня, если что-то не понятно.

1 Ответ

0 голосов
/ 19 октября 2011

Лексер JavaCC выбирает первое определение, которое получает наибольшее совпадение, поэтому ваше определение должно быть достаточным.

Это поведение описано в JavaCC TokenManager Tutorial . FAQ по JavaCC объясняет это здесь .

...