grammar - 语法有歧义?

标签 grammar ambiguity

你好
书上有这个问题说

鉴于这个语法

A --> AA | (A) | epsilon

a- 它产生什么\

b- 表示不明确

现在我想到的答案是

a- 邻接括号

b-它生成不同的解析树,所以它含糊不清,我做了一个显示两个场景的平局。

这是正确的还是有更好的答案?

最佳答案

a几乎是正确的。
语法真生成() , ()() , ()()() , ... 序列。
但由于第二条规则,它可以生成 (()) , ()((())) , 等等。
b是不正确的。
由于直接左递归,此文法不明确:A → AA .

如何避免左递归:one , two .

关于grammar - 语法有歧义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484879/

相关文章:

java - 在 java 中重载 var args 方法和包装方法时出现歧义错误

javascript - 区分 JSON 中的矩阵和列表列表

parsing - ANTLR 歧义 '-'

正则表达式解析类型 3 语法

ruby - 以编程方式从字符串派生正则表达式

objective-c - Parsekit 还是自己解析?

c++ - Bison 警告 : Empty rule for typed nonterminal

java - 在 Java 中解析 ad-hoc if/else 语法的推荐策略?

c# - Action 和 Func 参数不明确

c++ - 消除多重继承中的类成员歧义