Farkle


Farkle.Builder Namespace

Type/Module Description

BuildError

An error the builder encountered.

BuildOptions

Additional options to configure the building process, intended to be used by advanced scenarios. This class is currently empty; options will be added in future releases.

Comment

A type of source code comment. As everybody might know, comments are the text fragments that are ignored by the parser.

DesigntimeFarkle (Module)

Functions to set metadata for designtime Farkles. With few exceptions, these functions will have to be applied to the topmost designtime Farkle that will get build, or they will have no effect. Designime Farkles that were applied the functions of this module must not be used with the original designtime Farkles in the same context; only one grammar symbol will be created, with undefined behavior.

DesigntimeFarkle (Type)

The base interface of DesigntimeFarkle{T}.

DesigntimeFarkle<'T>

An object representing a grammar symbol created by Farkle.Builder. It corresponds to either a standalone terminal or a nonterminal that contains other designtime Farkles.

DesigntimeFarkleBuild

Functions to create `Grammar`s and `PostProcessor`s from `DesigntimeFarkle`s.

DesigntimeFarkleExtensions

Extension methods for DesigntimeFarkles.

DesigntimeFarkleOperators

F# operators to easily work with designtime Farkles and production builders.

DFABuild

Functions to generate Deterministic Finite Automata from `Regex`es. The algorithm is a modified edition of the one found at ยง3.9.5 in "Compilers: Principles, Techniques and Tools" by Aho, Lam, Sethi & Ullman.

F<'T>

A delegate that fuses the many members of a production into one arbitrary object.

GrammarDefinition

An object containing the symbols of a grammar, but lacking the LALR and DFA states.

GrammarMetadata

Additional information about a grammar to be built.

Group

A helper static class to create groups. Groups are used to define lexical elements that start and end with specified literals, and contain arbitrary characters. Groups are a tokenizer's construct, and their content is considered to be a terminal by the parser. Comments are essentially groups, but this class creates groups that have significant content.

LALRBuild

Functions to generate LALR state tables from a grammar.

LALRConflict

An LALR conflict. It arises when the parser can take different actions when encountering a `Terminal` or the end.

LALRConflictReason

The reason an LALR conflict failed to be resolved.

LALRConflictState

An LALR state that might have a conflict. Its API is almost identical to `Farkle.Grammar.LALRState` type, except that for each terminal or end of input there can be many possible actions.

LALRConflictType

The type of an LALR conflict.

Nonterminal

A helper static class to create nonterminals.

Nonterminal<'T>

A nonterminal symbol. It is made of Production{T}s.

PrecompilableDesigntimeFarkle

An object holding a designtime Farkle whose grammar can be precompiled ahead of time.

PrecompilableDesigntimeFarkle<'T>

The typed edition of PrecompilableDesigntimeFarkle.

PrecompiledGrammar

An object that represents a precompiled grammar inside an assembly.

PrecompilerExtensions

Extension methods that create and build precompilable designtime Farkles.

PrecompilerLoaderException

This exception gets thrown when Farkle fails to load a precompiled grammar. Such exceptions indicate bugs and should they ever occur, opening an issue on GitHub would be very helpful.

PredefinedSet

A commonly used set of characters.

PredefinedSets

Some common character sets that were imported from GOLD Parser.

Production<'T>

A production. Productions are parts of Nonterminal{T}s.

ProductionBuilder

The base, untyped class of the production builders.

ProductionBuilderExtensions

Extension methods to create production builders.

Regex (Module)

F#-friendly members of the `Regex` class. Please consult the members of the `Regex` class for documentation.

Regex (Type)

A regular expression that is used to specify a tokenizer symbol.

RegexGrammar

Parses regexes from strings. The language's syntax is exmplained at the project's documentation.

RegexOperators

F# operators to easily create `Regex`es.

T<'T>

A delegate that transforms the content of a terminal to an arbitrary object.

Terminal

A helper static class to create terminals.

Terminals

Some designtime Farkles that are commonly used in many grammars.