The generator for LR parsers uses Pager's method, augmented with Tom Pennello's Forward Move Algorithm for error recovery. The grammar specifies identifiers for nodes in the abstract syntax tree, and the identifiers for tokens. It generates Fortran declarations for tree node identifiers and named constants that represent the PDA.
The lexer generator accepts regular expressions and generates a DFA. It generates Fortran declarations for character classes, recognized objects, named constants that represent the DFA.
A third program generates declarations that connect the parser and lexer.
The LR parser generator and lexer generator both use parsers and lexers generated by themselves. An infrastructure to use a generated lexer and parser is therefore included as part of these programs.
Features
- Entirely in standard-conforming Fortran