为什么Ecmascript Regexp语法的替代符号左递归?
-
30-09-2019 - |
题
我一生无法弄清楚为什么替代方案是递归的。它确实将扳手扔进了我的解析器。
Alternative :: [empty] Alternative Term
这是规格的语义部分中的注释,该注释尚不清楚。也许一旦我理解这一点,推理就会被揭示?
注意连续术语尝试同时匹配输入字符串的连续部分。如果左替代方案,正确的术语和正则表达式的续集都有选择点,则续集中的所有选择都在正确的期限内转到下一个选择之前就尝试转到左选择中的下一个选择。
哪种解析器可以正确处理左递归语法?
解决方案
因为对于某些类型的解析器,左记录要好得多(例如,YACC-请参见第6.2节 这里 解释)。
如果这给您的特定解析器造成麻烦,那么一定要将其交换 - 它不会以任何方式影响语言的定义。
不隶属于 StackOverflow