Type/Module | Description |
An error the builder encountered. |
|
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. |
|
A type of source code comment. As everybody might know, comments are the text fragments that are ignored by the parser. |
|
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. |
|
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. |
|
Functions to create `Grammar`s and `PostProcessor`s from `DesigntimeFarkle`s. |
|
F# operators to easily work with designtime Farkles and production builders. |
|
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. |
|
A delegate that fuses the many members of a production into one arbitrary object. |
|
An object containing the symbols of a grammar, but lacking the LALR and DFA states. |
|
Additional information about a grammar to be built. |
|
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. |
|
Functions to generate LALR state tables from a grammar. |
|
An LALR conflict. It arises when the parser can take different actions when encountering a `Terminal` or the end. |
|
The reason an LALR conflict failed to be resolved. |
|
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. |
|
The type of an LALR conflict. |
|
A helper static class to create nonterminals. |
|
An object holding a designtime Farkle whose grammar can be precompiled ahead of time. |
|
An object that represents a precompiled grammar inside an assembly. |
|
Extension methods that create and build precompilable designtime Farkles. |
|
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. |
|
A commonly used set of characters. |
|
Some common character sets that were imported from GOLD Parser. |
|
The base, untyped class of the production builders. |
|
Extension methods to create production builders. |
|
F#-friendly members of the `Regex` class. Please consult the members of the `Regex` class for documentation. |
|
A regular expression that is used to specify a tokenizer symbol. |
|
F# operators to easily create `Regex`es. |
|
A delegate that transforms the content of a terminal to an arbitrary object. |
|
A helper static class to create terminals. |
|
Some designtime Farkles that are commonly used in many grammars. |