The MarpaX::Interface::Inline
module provides the Inline Rule Interface (IRIF) to write grammars for the [Marpa parser generator][Marpa::R2]. While Marpa already provides the Scanless Interface (SLIF), the IRIF tries to provide a more productive frontend:
- Longest-Acceptable-Token Matching: The builtin lexer is smart and only tries to find tokens that can actually be used at the current position. This makes it easier to nest languages.
- Inline Rules and Quantifiers:
A regex like syntax allows you to specify rules where you need them – and not every rule has to be named. Quantifiers include support for Perl6's separation operator
%
. - Inline Actions: Each production is associated with an action that builds the AST. With the IRIF, these are specified inline, directly after the rule which they operate on.