我目前正在使用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