View Source Minipeg.Parsers.CommonParsers (Minipeg v0.7.0)

Some commonly useful parsers

Summary

Types

@type ast_list_t() :: [ast_t()]
@type ast_t() :: any()
@type atoms() :: [atom()]
@type binaries() :: [binary()]
@type binary?() :: maybe(binary())
@type char_set_spec_t() :: maybe(binary() | list())
@type char_set_t() :: [binary()] | binary()
Link to this type

either(success_t, error_t)

View Source
@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 name_t() :: atom() | binary()
@type name_t?() :: maybe(name_t())
@type parser_function_t() :: (Minipeg.Input.t(), Minipeg.Cache.t(), binary() ->
                          result_t())
@type position_t() :: {pos_integer(), pos_integer()}
@type result_t() :: Minipeg.Failure.t() | Minipeg.Ignore.t() | Minipeg.Success.t()
@type satisfier_result_t() :: either(any(), binary())
@type satisfier_t() :: (any() -> satisfier_result_t())
@type str_or_count_t() :: binary() | non_neg_integer()
@type token1_comp_t() ::
  {atom(), token_parse_part2()}
  | {atom(), token_parse_part2(), (binary() -> any())}
@type token1_spec_t() ::
  {atom(), token_parse_part1()}
  | {atom(), token_parse_part1(), (binary() -> any())}
@type token_comp_t() :: [token1_comp_t()]
@type token_spec_t() :: [token1_spec_t()]

Functions

Link to this function

ident_parser(name \\ nil, opts \\ [])

View Source
@spec ident_parser(binary?(), Keyword.t()) :: Minipeg.Parser.t()
@spec int_parser(binary?()) :: Minipeg.Parser.t()
Link to this function

keywords_parser(keywords, name \\ nil)

View Source
@spec keywords_parser([binary()], binary?()) :: Minipeg.Parser.t()

Succeeds if any of the given keywords parse

Link to this function

literal_parser(literal, name \\ nil)

View Source
@spec literal_parser(binary(), binary?()) :: Minipeg.Parser.t()
Link to this function

unsigned_int_parser(name \\ nil)

View Source
@spec unsigned_int_parser(binary?()) :: Minipeg.Parser.t()
Link to this function

ws_parser(allow_newline \\ false, min_count \\ 0, name \\ nil)

View Source
@spec ws_parser(boolean(), non_neg_integer(), binary?()) :: Minipeg.Parser.t()