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

track_parser(ctx, parser)

track_parser first checks if the parser has already been tracked for the current input index and, if it has, raises a CycleError to indicate the parser is in a loop. Otherwise it adds the parser at the current index.


iex> alias Ergo.{Context, Parser} iex> import Ergo.{Terminals, Combinators} iex> context =, "Hello World") iex> parser = many(char(?H)) iex> context2 = Parser.track_parser(context, parser) iex> assert Context.parser_tracked?(context2, parser.ref)