我目前正在使用JavaCC,Eclipse和JTB使用解析器进行简单的语言工作。我正在为此进行学习。当我运行java文件它给了我下面的错误:“遇到”错误,应该不存在
Encountered " "var" "var "" at line 2, column 5.
Was expecting: ":" ...
但当我仔细看一下我的代码存在于第2行?没有这样的事! 我知道这个错误不应该在那里我已经到以前的误差像2现在的调试时间,由于...
编辑 这是我的令牌代码,包括“VAR”:
TOKEN :
{
< REQUIRE: "require" >
| < IF: "if" >
| < WHILE:"while" >
| < VAR:"var" >
| < STOP:"stop" >
| < EXEC:"exec" >
| < ELSE:"else" >
}
,这是 “无功” 的规则定义:
void VariableDeclaration():{}
{
"var" VariableName() "=" MathExpression() "."
}
void VariableAssign():{}
{
VariableName() "=" MathExpression() "."
}
希望这有助于:)
你可以包含它正在尝试阅读的代码吗?至少第一位? – Pokechu22 2014-09-26 14:58:52
@Pokechu22第一行?确定 – ANON 2014-09-26 16:04:43
出现错误是因为解析器在预期不包含“var”的一组令牌之一时遇到令牌“var”。如果你想要更好的答案,你必须发布输入文本和语法的相关部分。如果你打开解析器调试,你会看到自己正在发生的事情。 – 2014-09-26 16:06:19