x
Parser Settings Algorithm Enable recursive descent parsing
When enable, recursive descent style "call" states will be generated
Enable bottom up parsing
When enable, LR style states may be produced. In general, this
allows more advanced grammar constructs to be parsed, such
as left recursive rules.
When disabled, grammars with rules that require LR style parse states
will be rejected, and relev
ant errors will be reported.
Enable context forks
Allow the parser to split its context to handle ambiguity. This
may lead to a CSF (Concrete Syntax Forest) or a CSDAG (Concrete Syntax
DAG) being returned by the parser instead of a CST
Peeking Enable Peek
When enabled, unrestricted lookahead states states will be generated
When disabled, grammars with rules that require a lookahead that is
`k>1` will be rejected, and relevant errors will be reported.
Maximum lookahead
The maximum number of lookead symbols allowed before parser construction
is aborted or a different disambiguating strategy is employed.
A value of zero represents unlimited lookahead
Parser Enable anonymous nonterm inlining
An anonymous non-terminal, aka grouped rules `e.g ( symA symB | symC | ..
)`, may be inlined into the body of its host rule if none of the grouped
rules contain semantic actions, such as `:ast` definitions.
Parsers created with this type of optimization tend to perform poorly when
used for error correcting.
Export all nonterms
Export all non-terminals as parser entry points. This implies
an RD or RAD parser.
Requires a lab-host server.
CST merging
Creates states that directly handle transitions on terminals, allowing the
creation of parsers that can patch existing CST data structures.
CST nonterm shift
Allow the parser to shift on CST non-term nodes.
Lexer Context free
Creates a single scanner instead of multiple contextual scanners. More
likely to report terminal conflicts.
Inline scanner states
Allow inlining of scanners that yield single codepoint tokens.
Parsers created with this type of optimization tend to perform poorly when
used for error correction.
Scan byte sequences
Enables using wide data types ( u16 | u32 | u64 | u128 ) to recognize a
sequence of characters.
Enable scanner lookahead
Enables FOLLOW context sensitive scanners, which will consider the tokens
that _follow_ the states which the scanner is constructing tokens
for.
May significantly increase the number scanner states.