我正在尝试确定对EcmaScript语法的建议更改是否会引入歧义。
语法在某些方面很奇怪
- 没有常规或上下文自由的词法语法意味着没有办法将输入分解为一系列令牌,这些令牌可以被提供给树构建器,尽管在给定的解析器状态下有一个上下文无关语法可以是用于获取下一个令牌。
- 有些令牌是隐含的。特别是当源文本中不存在分号时,会在某些位置插入分号。这只需要一个不可忽略的前瞻标记,但由于可忽略的标记可以是任意长度,因此可以防止非有限前瞻。
- 没有比允许删除或折叠可忽略令牌的完整解析更简单的翻译。
- 行终止符令牌(以及等同于行终止符的多行注释)在大多数情况下都是可忽略的,但在某些情况下很重要。
醇>
我知道一般来说证明没有歧义是不可行的,但我希望能够实现一个更简单的目标:
当且仅当没有字符串使得通过候选语法的两条不同路径可能产生两个不同的树,其中每条路径涉及将字符串分解为少于k个标记时,该测试为真。
如果我能为候选语法证明这样的事情达到50,我会很高兴。
是否有关于在这种限制内检测歧义的文献?