You're seeing just the function diagnose, go back to Ergo.Parser module for more information.

diagnose/1 invokes the specified parser by calling its parsing function with the specific context while tracking the progress of the parser. The progress can be retrieved from the progress key of the returned context.


iex> alias Ergo.{Context, Parser}
iex> import Ergo.{Combinators, Terminals}
iex> context =, "Hello World")
iex> parser = many(wc())
iex> assert %{status: :ok} = Parser.invoke(parser, context)