Parsing 为什么这不是LL(1)语法?

Parsing 为什么这不是LL(1)语法?,parsing,compiler-construction,nlp,grammar,Parsing,Compiler Construction,Nlp,Grammar,S->1S2 | S0 |ε 我想应该是LL(1),因为可以确定 例如,如果下一个输入符号是0,我就知道它是S->S0 ε是否意味着它不能是LL(1)?这个语法不是LL(1),只是因为它有一个左递归。当您试图构建解析器表时,会出现冲突 您可能需要添加第二个标记来引导它-例如,当您看到0时,您总是会根据逻辑选择S0。既然你从来没有用完0,你不会永远递归到S0中,永远找不到epsilon吗?因为S->S0->S00->S00->e000?这是错误的,因为ε应该像000e?

S->1S2 | S0 |ε

我想应该是LL(1),因为可以确定

例如,如果下一个输入符号是0,我就知道它是S->S0

ε是否意味着它不能是LL(1)?

这个语法不是LL(1),只是因为它有一个左递归。当您试图构建解析器表时,会出现冲突


您可能需要添加第二个标记来引导它-例如,当您看到0时,您总是会根据逻辑选择
S0
。既然你从来没有用完0,你不会永远递归到
S0
中,永远找不到epsilon吗?因为S->S0->S00->S00->e000?这是错误的,因为ε应该像000e?