我想为特定语言构建一个简单的词法分析器,它使用ANTLR保留像(if,else等)这样的单词。我经历了几个教程,并且能够找到定义除保留关键字之外的所有选项的方法。如何在ANTLR中的语法文件中定义保留关键字?
提前致谢 Shamika
答案 0 :(得分:8)
在可能与这些关键字匹配的规则之前定义它们。
例如,您有一个匹配标识符的规则,其中标识符由一个或多个字母组成,那么您的保留if
关键字应该位于词法分析器中的标识符规则之前:
grammar T;
// parser rules here
IF
: 'if'
;
IDENTIFIER
: ('a'..'z')+
;
这样,if
将始终成为IF
令牌,而不是IDENTIFIER
。