"one or more" 使用 LL 解析器
"one or more" with LL parser
假设我的语法是:
file = line, {line}
line = ..., "\n"
如果我想为该语法构建一个 LL 解析器,我应该如何实现 "one or more line"?
我正在考虑将语法更改为:
file = line
line = ..., "\n", nl
nl = line
| <end of file>
我的行会嵌套。这是解决问题最elegant/efficient的方法吗?
关闭。通常就像这样:
file = line, morelines
morelines = e | line, morelines
line = ..., "\n"
其中 e 是 epsilon 或空符号
假设我的语法是:
file = line, {line}
line = ..., "\n"
如果我想为该语法构建一个 LL 解析器,我应该如何实现 "one or more line"?
我正在考虑将语法更改为:
file = line
line = ..., "\n", nl
nl = line
| <end of file>
我的行会嵌套。这是解决问题最elegant/efficient的方法吗?
关闭。通常就像这样:
file = line, morelines
morelines = e | line, morelines
line = ..., "\n"
其中 e 是 epsilon 或空符号