1
我的JavaCC项目出现了一些问题。我试图识别一个变量声明,它有一个可能的“变量”前缀,一种变量名称和变量(id)。但解析器将第一个单词识别为kind,并且不会继续执行该行的其余部分。JavaCC在令牌中识别令牌
它说:
Exception in thread "main" ParseException: Encountered " <KIND> "char "" at line 2, column 9.
Was expecting one of:
<VARIABLE> ...
这里是我的令牌如何申报
TOKEN :
{
<START: "start"> {debugStream.println("start");}
| <END: "end"> {debugStream.println("end");}
| <VARIABLE: ("variable" <KIND> <ID>) | (<KIND> <ID>)> {debugStream.println("variable decl");}
| <KIND: "integer"|"real"|"logic"|"char"|"text"> {debugStream.println("kind");}
| <ID: (["a"-"z","_"])+> {debugStream.println("id");}
}
我也试图把种类和ID为special_tokens,然后解析器不用错误,但不要也不承认变量声明。
编辑:
这里的输入字符串
start
char sex
integer num
end
你没有说什么定义'TYPE'。你也可以显示输入字符串。 – 2014-10-18 17:58:01
对不起@TheodoreNorvell。我已编辑帖子以添加输入字符串。这是一个非常简单的。没有TYPE,它只是一个错字。 – bfagundes 2014-10-18 22:01:19