View Source Minipeg.Combinators (Minipeg v0.1.3)
All public functions in this module take a parser and potentially more parameters and return a new parser
Link to this section Summary
Functions
Just parses with parser
but displays, input and result to stderr
Unwrapps a wrapped parser and parses with it
Applies a parser as many times as possible, can use min_count
(defaulting to 0) to
fail unless the parser could parse min_count
times
Succeeds if parser
succeeds, but maps the ast with mapper_fun
.
If parser
fails, it just fails
Returns a parser that only succeeds if the original parser succeeds and the satisfier function that is called with the ast of the original result returns {:ok, value}. It also changes the original ast with value in the final result.
Looks into the cache (for this parsing position) before parsing, if no result found parses and puts the result into the cache (for this parsing position)
Link to this section Types
@type ast_t() :: any()
@type either(success_t, error_t) :: {:ok, success_t} | {:error, error_t}
@type input_t() :: binary() | [binary()] | Minipeg.Input.t()
@type maybe(t) :: nil | t
@type parser_function_t() :: (Minipeg.Input.t(), Minipeg.Cache.t(), binary() -> result_t())
@type result_t() :: Minipeg.Failure.t() | Minipeg.Success.t()
@type satisfier_t() :: (any() -> satisfier_result_t())
@type str_or_count_t() :: binary() | non_neg_integer()
Link to this section Functions
@spec debug(Minipeg.Parser.t(), binary?()) :: Minipeg.Parser.t()
Just parses with parser
but displays, input and result to stderr
@spec lazy(Minipeg.Parser.t(), binary?()) :: Minipeg.Parser.t()
Unwrapps a wrapped parser and parses with it
@spec many(Minipeg.Parser.t(), maybe(binary()), non_neg_integer()) :: Minipeg.Parser.t()
Applies a parser as many times as possible, can use min_count
(defaulting to 0) to
fail unless the parser could parse min_count
times
@spec map(Minipeg.Parser.t(), (ast_t() -> ast_t()), maybe(binary())) :: Minipeg.Parser.t()
Succeeds if parser
succeeds, but maps the ast with mapper_fun
.
If parser
fails, it just fails
@spec maybe(Minipeg.Parser.t(), binary?()) :: Minipeg.Parser.t()
@spec satisfy(Minipeg.Parser.t(), satisfier_t(), binary?()) :: Minipeg.Parser.t()
Returns a parser that only succeeds if the original parser succeeds and the satisfier function that is called with the ast of the original result returns {:ok, value}. It also changes the original ast with value in the final result.
@spec savepoint(Minipeg.Parser.t(), binary?(), binary?()) :: Minipeg.Parser.t()
Looks into the cache (for this parsing position) before parsing, if no result found parses and puts the result into the cache (for this parsing position)
@spec select([Minipeg.Parser.t()], maybe(binary())) :: Minipeg.Parser.t()
@spec sequence([Minipeg.Parser.t()], binary?()) :: Minipeg.Parser.t()