用于最优 LL(k) 解析的 LL(finite) 策略
编程语言
2021-01-21 v2 计算与语言
形式语言与自动机理论
摘要
本文提出用于解析 LL(k) 文法的 LL(finite) 解析策略,其中 k 无需预先已知。该策略以线性时间解析输入,使用任意但始终最小的向前看符号来消除非终结符各候选式之间的歧义,并且在所执行的向前看终结符扫描次数上是最优的。文中展示了该算法的若干修改,使其能够通过优先级解决文法歧义—— effectively 将输入解释为解析表达式文法——以及使用谓词;并且概念验证开源解析器生成器 Astir 在其生成的输出中采用了 LL(finite) 策略。
引用
@article{arxiv.2010.07874,
title = {The LL(finite) strategy for optimal LL(k) parsing},
author = {Peter Belcak},
journal= {arXiv preprint arXiv:2010.07874},
year = {2021}
}
备注
An error was found in one of the algorithms for weak LL(k) grammars