代码之家  ›  专栏  ›  技术社区  ›  anand

递归解析中的bison-info-doc优先权

  •  0
  • anand  · 技术社区  · 6 年前

    粘贴在下面: https://www.gnu.org/software/bison/manual/html_node/How-Precedence.html#How-Precedence

    对于下面的示例,如果出现上述情况,解析将如何进行:

    nonterm1 : nonterm2
                     | nonterm1 term1 nonterm3 nonterm4
                     | nonterm1 term2 nonterm5 nonterm6
    

    nonterm1 : nonterm2 nonterm3
                      | nonterm1 term1 nonterm2 nonterm3
                      | nonterm1 term2 nonterm2 nonterm3
    

    考虑第一个例子。第一个解析器将使用 nonterm2 然后是为了 term1 规则, nonterm1 非术语2 价值和 term2 优先级高于 第一学期 ,解析器必须将值传递给 第二学期 但如果我们提供 第一学期 第一学期 规则,因为正如语句所示,最后一个终端标记赋予规则优先权。赋值 nonterm3 nonterm4 非术语1 在里面 规则是不可能的还是真的?

    值是用于术语或非术语的,但不是规则中的部分符号集,还是可能?

    信息文档是否说最后一个终端符号意味着“最后一个”符号,如果它是终端的话?

    1 回复  |  直到 6 年前
        1
  •  1
  •   rici    6 年前

    默认情况下,产品的优先级是产品右侧最后一个终端的声明优先级,而不管后面有多少个(或几个)非终端。

    使用声明优先级 %left %right , %precedence %nonassoc

    优先级仅用于解决歧义。如果语法完全决定了解析操作,则不参考优先级。