Algorithm &引用;一个或多个“;使用LL解析器

Algorithm &引用;一个或多个“;使用LL解析器,algorithm,parsing,grammar,ll,Algorithm,Parsing,Grammar,Ll,假设我的语法是: file = line, {line} line = ..., "\n" 如果我想为该语法构建一个LL解析器,我应该如何实现“一行或多行” 我想把语法改成这样: file = line line = ..., "\n", nl nl = line | <end of file> file=line 行=…,“\n”,nl nl=直线 | 我的行将是嵌套的。这是解决问题最优雅/有效的方法吗?接近。通常是这样的: file = line, moreline

假设我的语法是:

file = line, {line}
line = ..., "\n"
如果我想为该语法构建一个LL解析器,我应该如何实现“一行或多行”

我想把语法改成这样:

file = line
line = ..., "\n", nl
nl = line
   | <end of file>
file=line
行=…,“\n”,nl
nl=直线
| 

我的行将是嵌套的。这是解决问题最优雅/有效的方法吗?

接近。通常是这样的:

file = line, morelines
morelines = e | line, morelines
line = ..., "\n"

其中e是ε或空符号

太好了,谢谢。我不知道这个空符号。这更有意义,因为该方法可用于大多数语法