4
Q
BNF语法歧义
A
回答
5
如果一个特定的字符串可以有多个分析树,则语法是不明确的。在你的语言字符串yyxzx
可以有两个分析树:
A A
/\ /|\`\
y A y A z A
/|\`\ /\ \
y A z A y A x
| | |
x x x
因此,语法是不明确的。
这实际上相当于C语言中臭名昭着的“if/then/else”歧义,其中y=if
,z=else
和x=statement
。 http://en.wikipedia.org/wiki/Dangling_else。我建议查看该页面,了解如何解决此问题的想法。
相关问题
- 1. 处理BNF语法中的歧义
- 2. 歧义语法?
- 3. Java语法歧义
- 4. C++语法歧义
- 5. 解决语法歧义
- 6. ANTLR语法中的歧义
- 7. BNF语法衍生
- 8. 产生BNF语法
- 9. 考虑以下BNF语法(BNF,递归)
- 10. | |如何?影响BNF语法?
- 11. 我的xml的BNF语法
- 12. 从语法中消除歧义
- 13. 歧义语法和最右派生
- 14. 用于语句顺序的BNF语法
- 15. 野牛/ yacc语法消歧
- 16. BNF语法为Python风格结构
- 17. BNF语法测试用例生成
- 18. HL7的完整BNF语法2.5
- 19. BNF语法和操作关联性
- 20. BNF用于计量单位的语法
- 21. 这个有效的BNF语法?
- 22. 有没有一种方法来确定语法中的歧义?
- 23. C#歧义扩展方法
- 24. 歧义
- 25. 关于BNF语法和Prolog的DCG语法的一些疑问
- 26. INNER JOIN语句中的歧义列
- 27. Scala-IDE或Scala不合理的语法歧义
- 28. 如何从柠檬语法中删除函数调用歧义?
- 29. 如何诊断ANTLR4语法中的歧义?
- 30. ANTLR:多个AST使用相同的歧义语法?