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


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> parser = many(char(?H)) iex> context = ...>"Hello World") ...> |> Map.put(:parser, parser) ...> |> Parser.track_parser() iex> assert Context.parser_tracked?(context, parser.ref)