* Regular expressions or literal strings as terminals (tokens),
* Multiple (non-contiguous) productions for any rule,
* Repeated and optional subrules within productions,
* Full access to Perl within actions specified as part of the grammar,
* Simple automated error reporting during parser generation and parsing,
* The ability to commit to, uncommit to, or reject particular productions during a parse,
* The ability to pass data up and down the parse tree ("down" via subrule argument lists, "up" via subrule return values)
* Incremental extension of the parsing grammar (even during a parse),
* Precompilation of parser objects,
* User-definable reduce-reduce conflict resolution via "scoring" of matching productions.