Non-LR(1) Precedence Cascade Grammars (Short Paper)

Author José-Luis Sierra

Thumbnail PDF


  • Filesize: 389 kB
  • 8 pages

Document Identifiers

Author Details

José-Luis Sierra
  • Fac. Informática. Universidad Complutense de Madrid, C/ Prof. José García Santesmases 9. 28040 Madrid, Spain

Cite AsGet BibTex

José-Luis Sierra. Non-LR(1) Precedence Cascade Grammars (Short Paper). In 7th Symposium on Languages, Applications and Technologies (SLATE 2018). Open Access Series in Informatics (OASIcs), Volume 62, pp. 11:1-11:8, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


Precedence cascade is a well-known pattern for writing context-free grammars (CFGs) that model the syntax of expression languages. According to this method, precedence levels are represented by non-terminals, and operators' attributes are used to write syntax rules properly. In most cases, the resulting precedence cascade grammar (PCG) has neat properties that facilitate its implementation. In particular, many PCGs are LR(1) grammars, which serve as input for conventional bottom-up parser generators. However, for some cumbersome operator tables the method does not produce such neat grammars. This paper focuses on these cumbersome operator tables by identifying several conditions leading to non-LR(1) PCGs.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Syntax
  • grammarware
  • expression grammars
  • grammar patterns
  • grammar ambiguity
  • LR grammars


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Annika Aasa. Precedences in specifications and implementations of programming languages. Theoretical Computer Science, 142(1):3-26, 1995. URL:
  2. Alfred. V. Aho, Sethi Johnson, and Jeffrey D. Ullman. Deterministic parsing of ambiguous grammars. In ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 1-21, 1973. URL:
  3. Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 2nd edition, 2006. Google Scholar
  4. Nils Anders Danielsson and Ulf Norell. Parsing mixfix operators. In 20th International Conference on Implementation and Application of Functional Languages, pages 80-99, 2011. Google Scholar
  5. Pierre Deransart, AbdelAli Ed-Dbali, and Laurent Cervoni. Prolog syntax. In Prolog: The Standard: Reference Manual, pages 221-238. Springer, 1996. URL:
  6. Donald E. Knuth. On the translation of languages from left to right. Information and Control, 8(6):607-639, 1965. Google Scholar
  7. Wafik Boulos Lotfallah. Characterizing unambiguous precedence systems in expressions without superfluous parentheses. International Journal of Computer Mathematics, 86(1):1-20, 2009. URL:
  8. Kenneth C. Louden. Compiler Construction: Principles and Practice. PWS Publishing, 1997. Google Scholar
  9. Simon Marlow, editor. Haskell 2010 Language Report. Haskell Community, 2010. Google Scholar
  10. Martin Odersky. The Scala language specification, version 2.9. Technical report, Programming Methods Laboratory, EPFL, 2014. Google Scholar
  11. Simon L. Peyton Jones. Parsing distfix operators. Communications of the ACM, 29(2):118-122, 1986. URL:
  12. Kjell Post, Allen Van Gelder, and James Kerr. Deterministic parsing of languages with dynamic operators. In International Symposium on Logic Programming, pages 456-472, 1993. Google Scholar
  13. Ravi Sethi. Programming Languages: Concepts and Constructs. Addison-Wesley, 1989. Google Scholar
  14. Lucian Radu Teodorescu, Vlad Dumitrel, and Rodica Potolea. Flexible operators in Sparrow. International Journal of Research in Engineering and Technology, 3(17):40-45, 2014. Google Scholar