Ergo.Combinators.optional
You're seeing just the function
optional
, go back to Ergo.Combinators module for more information.
Link to this function
optional(parser, opts \\ [])
Examples
iex> alias Ergo.{Context, Terminals, Combinators}
iex> context = Context.new("Hello World")
iex> parser = Combinators.optional(Terminals.literal("Hello"))
iex> parser.(context)
%Context{status: :ok, ast: "Hello", input: " World", index: 5, col: 6, char: ?o}
iex> alias Ergo.{Context, Terminals, Combinators}
iex> context = Context.new(" World")
iex> parser = Combinators.optional(Terminals.literal("Hello"))
iex> parser.(context)
%Context{status: :ok, ast: nil, input: " World", index: 0, col: 1, char: 0}