Propane is a LALR Parser Generator (LPG) which:

  • accepts LR(0), SLR, and LALR grammars
  • generates a built-in lexer to tokenize input
  • supports UTF-8 lexer inputs
  • generates a table-driven shift/reduce parser to parse input in linear time
  • target C or D language outputs
  • optionally supports automatic full AST generation
  • tracks input text start and end positions for all matched tokens/rules
  • is MIT-licensed
  • is distributable as a standalone Ruby script

See https://github.com/holtrop/propane for development, downloads, and issues.

Releases:

CHANGELOG