Определить ключевые слова в грамматике ANTLR - PullRequest
5 голосов
/ 24 октября 2010

Я хочу создать простой лексический анализатор для конкретного языка, в котором зарезервированы такие слова, как (если, еще и т. Д.) С использованием ANTLR. Я прошел несколько уроков и смог найти способы определения всех опций, кроме зарезервированных ключевых слов. Как определить зарезервированные ключевые слова в файле грамматики в ANTLR?

Заранее спасибо Шамика

1 Ответ

8 голосов
/ 24 октября 2010

Определите их перед правилом, которое может соответствовать этим ключевым словам.

Например, у вас есть правило, которое соответствует идентификаторам, где идентификатор состоит из одной или нескольких букв, тогда ваше зарезервированное ключевое слово if должнобыть местами перед правилом идентификатора в вашем лексере:

grammar T;

// parser rules here

IF
  :  'if'
  ;

IDENTIFIER
  :  ('a'..'z')+
  ;

Таким образом, if всегда будет IF токеном, а не IDENTIFIER.

...