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

为什么ECMAScript RegExp语法的替代符号是递归的?

  •  0
  • ChaosPandion  · 技术社区  · 15 年前

    我一辈子都搞不懂为什么选择是递归的。它真的给我的解析器带来了麻烦。

    Alternative :: 
        [empty] 
        Alternative Term 
    

    在规范的语义部分有一个不太清楚的注释。也许等我明白这一点,原因就暴露了?

    同时匹配连续 输入字符串的一部分。如果 左选项,右项,和 续集在继续之前已经试过了 下一个选择, 在进行下一步之前尝试过 在左边的选择。

    什么样的解析器可以正确处理左递归语法?

    1 回复  |  直到 14 年前
        1
  •  2
  •   psmears Touffy    15 年前

    因为对于某些类型的解析器,左递归要好得多(例如,对于yacc,请参见第6.2节) here 解释)。

    推荐文章