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.

PrecompilerInputAttribute

Marks an IGrammarBuilder factory method to be precompiled. Methods with this attribute applied are called precompiler input methods, or just input methods.

PrecompilerOutputAttribute

Enables accessing the outputs of a precompiled grammar defined with PrecompilerInputAttribute. Methods with this attribute applied are called precompiler output methods, or just output methods.

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.

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

BuilderOutputs

Represents the possible outputs 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.