我知道有几个帖子的标题相似。大多数链接到死网站 - 无论如何我有一个更具体的问题。
我正在尝试将XPath 规范中的 EBNF转换为直接的 BNF,以便我可以轻松地创建与 Bison 兼容的语法文件。
我已经有一段时间没有这样做了,我不记得递归属于生产的哪一边。我认为它是左边的 - 但我的“直截了当”的翻译在通过 Bison 生成的解析器运行时给我带来了纯简 XPath 表达式的语法错误。
因此,如果有人可以取笑我并参与进来-所以我不是在追鬼:
在以下Expr
规则中:
Expr::=
ExprSingle ("," ExprSingle)*
这是正确的翻译吗?(把递归放在左边):
Expr::=
Expr "," ExprSingle
| ExprSingle