我正在尝试使用 JavaCC 为 Java 的一个子集做一个词法分析器。变量名可以是字母、数字和_的任意组合,以字母开头。我只有一个问题,保留字(如int
, new
, ...)不能用作变量名,我想知道如何声明它。现在我有这个,首先声明保留字,然后是变量名的规则,是否足够,然后由解析器来处理它?
//Reserved words
TOKEN:{
< TOK_BOOLEAN : "boolean" > |
< TOK_BREAK : "break" > |
< TOK_CLASS : "class" >
}
TOKEN:{
< TOK_ID : <LETTER> (<LETTER>|<DIGIT>|"_")+ > |
< #DIGIT : ["0"-"9"] > |
< #LETTER : ["a"-"z"] | ["A"-"Z"] >
}
TOK_ID 是变量名的规则。
谢谢,如果有不清楚的地方问我。