# Ergo v1.0.7 - Table of Contents A pragmatic parser combinator library ## Pages - Introduction - [Overview](overview.md) - [Intro to Parser Combinators](parser_combinator_intro.md) - [Comparisons with other libraries](comparisons.md) - [Creating a Basic Parser](basic_parser.md) - [Debugging](debugging.md) - [Recursion](recursion.md) - [General Guidance](guidance.md) ## Modules - [Ergo](Ergo.md): Elixir Parser Combinators Author: Matt Mower Version: 0.9.1 - [Ergo.Combinators](Ergo.Combinators.md): `Ergo.Combinators` is the key set of parsers used for combining together other parsers. - [Ergo.Context](Ergo.Context.md): `Ergo.Context` defines the `Context` struct that is used to maintain parser state as the various parsers work, and various functions for creating & manipulating contexts. - [Ergo.Meta](Ergo.Meta.md): The Meta parsers are not really parsers at all but operate within the parsing framework. - [Ergo.Numeric](Ergo.Numeric.md): The Parsers module exists to house utility parsers that while they are terminals in the sense that they are not parameterised, they internally make use of parsers from the Combinators module. - [Ergo.Parser](Ergo.Parser.md): `Ergo.Parser` contains the Parser record type. Ergo parsers are anonymous functions but we embed them in a `Parser` record that can hold arbitrary metadata. The primary use for the metadata is the storage of debugging information. - [Ergo.Telemetry](Ergo.Telemetry.md) - [Ergo.TelemetryServer](Ergo.TelemetryServer.md) - [Ergo.TelemetryServer.State](Ergo.TelemetryServer.State.md) - [Ergo.Terminals](Ergo.Terminals.md): `Ergo.Terminals` contains the terminal parsers, which are those parsers not parameterized with other parsers and therefore work more at the level of text than structure. - [Ergo.Utils](Ergo.Utils.md) - Exceptions - [Ergo.Parser.CycleError](Ergo.Parser.CycleError.md)