使用javaCC的javascript解释器

时间:2014-12-26 17:16:38

标签: javascript javacc

我必须使用javaCC制作一个JavaScript解释器,我写了所有的语法规则,但是选择冲突太多了!!我试过LOOKAHEAD,但我读到了LOOKAHEAD并不总能解决问题,所以我该怎么办?它真的很糟糕我的意思是我想要声明一个变量..就像(var x;)例如,它不起作用..我很确定选择冲突是问题所在。 例如:

void FunctionDeclaration():
{ 
}
{
  < FUNCTION > Identifier() "(" (ParameterList())? ")" "{" (FunctionBody())? "}"
}

void FunctionBody():
{
}
{
LOOKAHEAD(3)  FunctionDeclaration()
| (Statement())+
}

void Statement():
{
}
{
  LOOKAHEAD(3)
  Block()
| VariableStatement()
| EmptyStatement()
|  LOOKAHEAD(2) ExpressionStatement() 
| IfStatement()
| FunctionCall()
| IterationStatement()
| ContinueStatement()
| BreakStatement()
| ReturnStatement()
| WithStatement() 
| LabelledStatement()
| SwitchStatement()
| ThrowStatement()
| TryStatement()
| DebuggerStatement()
}

由于这个原因,我不能在这里写一个ReturnStatement。

我该怎么办?

我已经在这里尝试了LOOKAHEAD ..没有用。

0 个答案:

没有答案