2010-10-24 118 views
4

我想用ANTLR构建一个简单的词法分析器对已保留类的字眼特定语言(如果,否则,等)。我通过几个教程去了,能找到定义除保留关键字的所有选项的方式。如何在ANTLR的语法文件中定义保留关键字?定义关键词在ANTLR语法

在此先感谢 Shamika

回答

2

This ANTLR 2.0 tutorial讨论如何处理在ANTLR词法分析器的关键字。只需搜索标题为“关键字”的部分即可。

有在页面顶部的基于视频的教程ANTLR 3.0的链接,如果是根据自己的喜好。

+0

以为我再也不会找到的教程,谢谢 – 2012-09-29 23:59:03

8

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

例如,你必须符合标识符的规则,也就是一个标识符由一个或多个字母,那么你保留if的关键字应该在你的词法标识符规则之前地方:

grammar T; 

// parser rules here 

IF 
    : 'if' 
    ; 

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

这样,一个if总会成为IF令牌,而不是一个IDENTIFIER