在ANTLR语法中定义关键字

时间:2010-10-24 13:20:54

标签: java compiler-construction antlr

我想为特定语言构建一个简单的词法分析器,它使用ANTLR保留像(if,else等)这样的单词。我经历了几个教程,并且能够找到定义除保留关键字之外的所有选项的方法。如何在ANTLR中的语法文件中定义保留关键字?

提前致谢 Shamika

1 个答案:

答案 0 :(得分:8)

在可能与这些关键字匹配的规则之前定义它们。

例如,您有一个匹配标识符的规则,其中标识符由一个或多个字母组成,那么您的保留if关键字应该位于词法分析器中的标识符规则之前:

grammar T;

// parser rules here

IF
  :  'if'
  ;

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

这样,if将始终成为IF令牌,而不是IDENTIFIER