是否考虑了EcmaScript语法

时间:2017-09-05 06:18:22

标签: javascript parsing ecmascript-6 compiler-construction

如果我想使用预测解析器,则以下语法不合适:

E -> T + E | T

据我所知,这个语法的问题是在多个制作中指定了非终端T。因此,如果解析器向前看下一个标记T,它就不知道要使用哪个生产,因为在几个作品中提到了T

所以语法必须重构为

E -> T X
X -> +E | e

现在,如果我查看EcmaScript grammar大多数非终端符号都有多个具有相同非终端的产品。例如,PropertyDefinition符号在两个作品中重复:

PropertyDefinitionList[Yield, Await]:
    PropertyDefinition[?Yield, ?Await]
    PropertyDefinitionList[?Yield, ?Await], PropertyDefinition[?Yield, ?Await]

所以我的理解是正确的,EcmaScript语法不是留下因素的,如果我想使用预测的自上而下的解析器,它必须重构?

0 个答案:

没有答案