English

The LL(finite) strategy for optimal LL(k) parsing

Programming Languages 2021-01-21 v2 Computation and Language Formal Languages and Automata Theory

Abstract

The LL(finite) parsing strategy for parsing of LL(k) grammars where k needs not to be known is presented. The strategy parses input in linear time, uses arbitrary but always minimal lookahead necessary to disambiguate between alternatives of nonterminals, and it is optimal in the number of lookahead terminal scans performed. Modifications to the algorithm are shown that allow for resolution of grammar ambiguities by precedence -- effectively interpreting the input as a parsing expression grammar -- as well as for the use of predicates, and a proof of concept, the open-source parser generator Astir, employs the LL(finite) strategy in the output it generates.

Keywords

Cite

@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}
}

Comments

An error was found in one of the algorithms for weak LL(k) grammars