- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
歧义语法定义为, “二义性语法是一种上下文无关语法,其中存在一个可以具有多个最左推导或解析树的字符串。”
我的疑问是,
1) 如果语法有多个最右派生词,这是否会使语法变得不明确?
2)如果文法有多个最右导数,是否意味着它也有多个最左导数?
拥有多个最右导数会对 LL(1)、LR(0) 解析器、LR(1) 解析器等的解析能力产生影响,为什么?
一切都是基于最左导数来定义和处理的。这可能是因为我们从左向右移动。但我们能从最右导数中获得任何见解吗?
最佳答案
左或右的选择完全是任意的。对于给定语法,具有多个最左派生的句子也将具有多个最右派生,反之亦然。因此,两种可能的歧义定义是等效的。
如果您考虑生成树的推导而不是一系列推导步骤,这可能会更清楚。这两个推导顺序对应于两种不同的遍历树的过程。 (两者都是深度优先,但一个从左到右访问节点,另一个从右到左访问节点。)如果某个句子(即树的边缘)出现在两个不同的解析树中,则语法是不明确的。两棵不同的树对于两个行走过程将具有不同的行走序列,因此可以使用遍历来比较树。 (此属性的其他步行程序也是可能的。)
关于parsing - 歧义语法和最右派生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45895053/
我有一个像这样的结构: struct S { data: i32, fun: Box, } 并希望使用编码器序列化数据部分。为此,我使用 rustc_serialize 并推导出它的特
我在 tomcat 中使用基于表单的身份验证,实际上我使用的是 j_security_check。代码如下 Login to the Tomcat-Demo applic
我是一名优秀的程序员,十分优秀!