join parse results when possible
join parse results when possible
Returns a parser that repeatedly parses what this parser parses, interleaved with the sep' parser.
The
sep' parser specifies how the results parsed by this parser should be combined.
Returns a parser that repeatedly parses what this parser parses, interleaved with the sep' parser.
The
sep' parser specifies how the results parsed by this parser should be combined.
chainl1(this, sep)
Returns a parser that repeatedly parses what this parser parses
Returns a parser that repeatedly parses what this parser parses
rep(this)
Returns a parser that repeatedly (at least once) parses what this parser parses.
Returns a parser that repeatedly (at least once) parses what this parser parses.
rep1(this)
from original framework, sequence parsers, but drop last result
from original framework, sequence parsers, but drop last result
Returns a parser that optionally parses what this parser parses.
Returns a parser that optionally parses what this parser parses.
opt(this)
^^ as in the original combinator parser framework
^^ as in the original combinator parser framework
map and join ASTs (when possible)
map and join ASTs (when possible)
alternatives in the presence of multi-parsing (no attempt to join yet)
alternatives in the presence of multi-parsing (no attempt to join yet)
sequencing is difficult when each element can have multiple results for different features tries to join split parsers as early as possible
sequencing is difficult when each element can have multiple results for different features tries to join split parsers as early as possible
non-backtracking sequencing (replace failures by errors)
non-backtracking sequencing (replace failures by errors)
combines ~> and ~! (non backtracking and dropping first result)
combines ~> and ~! (non backtracking and dropping first result)
from original framework, sequence parsers, but drop first result
from original framework, sequence parsers, but drop first result
allows backtracking
allows backtracking