Pidgin

Namespace Pidgin

Classes

Maybe

Constructor functions, extension methods and utilities for working with Maybe<T>.

ParseError<TToken>

Represents an error encountered during parsing.

ParseException

Thrown when a parse error is encountered during parsing.

Parser

Constructor functions, extension methods and utilities for Parser<TToken, T>. This class is intended to be imported statically ("using static Pidgin.Parser").

ParserExtensions

Extension methods for running parsers.

Parser<TToken>

Constructor functions, extension methods and utilities for Parser<TToken, T> This class is intended to be imported statically, with the type parameter set to the type of tokens in your input stream ("using static Pidgin.Parser<char>").

Parser<TToken, T>

Represents a parser which consumes a stream of values of type TToken and returns a value of type T. A parser can either succeed, and return a value of type T, or fail and return a ParseError<TToken>.

Result<TToken, T>

Represents the result of parsing. A parse result may be successful (Success == true), in which case it contains a value, or it may be a failure, in which case it contains an error.

Unit

An uninteresting type with only one value (Value) and no fields. Like void, but valid as a type parameter.

Structs

Expected<TToken>

Represents a parsing expectation for error reporting. Expected values are either a sequence of expected tokens (in which case Label == null && Tokens != null), a custom-named parser (Label != null && Tokens == null), or the end of the input stream (Label == null && Tokens == null).

Maybe<T>

Represents a single possibly absent value. Like Nullable but works for reference types as well as value types.

ParseState<TToken>

Represents the state of a parsing process. Includes functionality managing and buffering the input stream, reporting errors, and computing source positions.

For efficiency, this object is implemented as a mutable struct and is intended to be passed by reference.

WARNING: This API is unstable and subject to change in future versions of the library.

PooledList<T>

A version of List<T> which uses an array pool.

For efficiency, PooledList<T> is implemented as a mutable struct. It's intended to be passed by reference.

SourcePos

Represents a (line, col) position in an input stream.

SourcePosDelta

Represents a difference in textual lines and columns corresponding to a region of an input stream.

Interfaces

ITokenStream<TToken>

An interface for streams of TToken, which can be consumed by Parser<TToken, T>s.

Delegates

ReadOnlySpanFunc<T, TParam, TReturn>

A function which computes a result from a ReadOnlySpan<T> and an additional argument.