Left recursion in parsing expression grammars

  • Authors:
  • Sérgio Medeiros;Fabio Mascarenhas;Roberto Ierusalimschy

  • Affiliations:
  • Department of Computer Science, UFS, Aracaju, Brazil;Department of Computer Science, UFRJ, Rio de Janeiro, Brazil;Department of Computer Science, PUC-Rio, Rio de Janeiro, Brazil

  • Venue:
  • SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Parsing Expression Grammars (PEGs) are a formalism that can describe all deterministic context-free languages through a set of rules that specify a top-down parser for some language. PEGs are easy to use, and there are efficient implementations of PEG libraries in several programming languages. A frequently missed feature of PEGs is left recursion, which is commonly used in Context-Free Grammars (CFGs) to encode left-associative operations. We present a simple conservative extension to the semantics of PEGs that gives useful meaning to direct and indirect left-recursive rules, and show that our extensions make it easy to express left-recursive idioms from CFGs in PEGs, with similar results. We prove the conservativeness of these extensions, and also prove that they work with any left-recursive PEG.