Config file format
Grammar file format
Symbol attributes
Getting started

A Backtracking LR(1) Parser Generator


  • Generates a parser that is aware of the lexical state at all times. The lexical state can be used by the lexer to tokenize context sensitive tokens.
  • Generates LR(1) states only as needed. Default reductions are used to keep the number of states to a minimum.
  • Supports directed parsing on conflicts. Shift and reduce actions can be ordered arbitrarily. The ordering is independent of the position of the rules in the grammar file.
  • Semantic actions can direct parsing. A semantic predicate can cause the parser to backtrack.
  • Supports multiple start states.
  • Multiple parsers can coexist in a program.
  • Supports several syntax error recover strategies. Strategies can be given at parser run-time.
  • Parser creates an AST automatically.
  • Semantic actions are integrated using the Visitor pattern. The grammar file contains rules and node names only.
  • Supports synthesized attributes.
  • Generates lzz code.
  • Includes a parser simulator.
The latest version is 5.3.1, released March 21, 2002. Here are the changes since the initial release.

Please send questions, comments and bug reports to Michael Spencer.

lzz is available here.