3
具有语法
谁能启发我,为什么尝试回溯产生式和(按顺序)的带有回溯的递归下降解析器不能识别语法形成的语言。小号→ 一个一个小号→ 一个小号一个| 一个一个小号→ 一个小号一个小号→一个小号一个S \rightarrow aSa小号→ 一个一个小号→一个一个S \rightarrow aa小号→ 一个小号一个| 一个一个 小号→一个小号一个 | 一个一个S \rightarrow aSa\ |\ aa 它似乎只能解析语言单词。{ a2ñ | Ñ≥1 }{a2ñ | n≥1个}\{a^{2^n}\ |\ n \ge 1 \} 我使用具有生产规则的ABNF Parser Generator生成了这样的解析器,例如,S = "a" S "a" / "aa"解析器无法识别单词aaaaaa。 我希望它使用生产,直到解析树的终端节点从7左边开始串联的,然后去分析树选择生产小号→ 一个一个来代替,直到树看起来像这样:小号→ 一个S一个小号→一个小号一个S \rightarrow aSaa小号→ 一个一个小号→一个一个S \rightarrow aa S / …