Table of Contents

Namespace Farkle.Builder

Classes

BuilderOptions

Provides options to configure the process of building a grammar.

BuilderResult<T>

Represents the result of a builder operation.

GrammarBuilderExtensions

Contains extension methods that to set configuration options on IGrammarBuilder and IGrammarBuilder<T>.

GrammarSymbolExtensions

Contains extension methods that to set configuration options on IGrammarSymbol and IGrammarSymbol<T>.

Group

Provides factory methods to define lexical groups.

Nonterminal

Provides factory methods to define nonterminals.

Nonterminal<T>

Represents a nonterminal symbol in a grammar to be built that produces a value, and allows setting its productions after its creation.

ProductionBuilder

Provides an API for fluently building productions.

ProductionBuilderExtensions

Provides extension methods to manipulate and create production builders and productions.

Regex

Represents a pattern that must be matched by terminals in a grammar.

Terminal

Provides factory methods to define terminals.

Terminals

Provides factory methods for common terminal symbols.

Interfaces

IGrammarBuilder

Represents a grammar to be built, containing syntax and semantic rules.

IGrammarBuilder<T>

Augments IGrammarBuilder to represent a grammar to be built with a known type of values it produces.

IGrammarSymbol

Represents a symbol (terminal or nonterminal) in a grammar to be built that can be composed to form more complex symbols.

IGrammarSymbol<T>

Combines IGrammarSymbol and IGrammarBuilder<T> to represent a symbol in a grammar to be built with a known type of values it produces.

IProduction

Represents a production in a grammar to be built that produces a value.

IProductionBuilder<TSelf>

Provides a uniform API surface for operations common to all production builders.

IProduction<T>

Represents a production in a grammar to be built that produces a value.

Enums

BuilderArtifacts

Represents the possible artifacts that the builder can produce.

CaseSensitivity

Specifies the case sensitivity of a grammar to be built.

GroupOptions

Contains options to customize the creation of groups.

TerminalOptions

Contains options to customize the creation of terminals.

Delegates

Transformer<TChar, T>

Represents a semantic action that gets executed when a terminal or equivalent is encountered in input and produces a value.