Mercury library  1.0
Translation of CFG grammars into an object model (Bachelor's thesis).
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 CMercury.Analyser< T, TResult >Wrapper class for each step of analysis.
 CMercury.Analyser< T >Wrapper class for each step of analysis
 CMercury.AnalyserResult< T, TResult >Holds the result of analysis.

The fields hold information according to the following table:

 CMercury.Interpreting.ArgumentRepresents an argument passed to the Mercury.Interpreting.InterpreterAction{T}, the actual parameter given to the Mercury.Interpreting.Evaluator{T} in place of a formal parameter.
 CMercury.Interpreting.BasicActions< T >Contains basic actions for interpretation.

Type specifiers of actions are defined as follows:
 CMercury.Syntax.BasicScannerMapContains mapping between TokenType and Mercury.Syntax.Mapping of Mercury.Syntax.BasicScanner.
 CMercury.Interpreting.DataEntryEntry base (dummy) interface.
 CMercury.Interpreting.MemoEntry< T >Represents memoized value
 CMercury.Interpreting.RuleEntry< T >Describes a rule that has been used to interpret a tree.
 CMercury.Interpreting.TextEntryStores informations logged by actions or internal Evaluator.
 CMercury.Interpreting.TreeEntry< T >Represents an entry for tree interpretation.
 CMercury.DefaultsGlobal class containing cool static / convenience stuff.
 CMercury.Interpreting.EntryWriter< T >An auxiliary class that formats the DataEntry structure and writes it into a stream.
 CException
 CMercury.Exceptions.MercuryExceptionAn exception thrown by the Mercury library.
 CMercury.ExtensionsProvides extension methods for the Mercury library.
 CMercury.Syntax.GrammarRepresents a Context-Free Grammar. This is an immutable class, to create a grammar use Mercury.Syntax.GrammarBuilder.
 CMercury.Syntax.GrammarBuilderClass that creates grammars.
 CIComparable< Edge >
 CMercury.Syntax.EdgeRepresents an edge in the chart created by the ChartParser. This is an immutable class.
The Edge contains four values:
 CIComparable< Rule >
 CMercury.Syntax.RuleRepresents a Context-Free Grammar rule. This is an immutable class
 CIComparable< Symbol >
 CMercury.Syntax.SymbolRepresents a single symbol of the grammar. This is an immutable class.

For a symbol name to be valid it must NOT contain control or separator characters, must not be empty and must meet these conditions:
 CIComparable< Tree< T >>
 CMercury.Nucleus.Trees.Tree< T >A non-balanced tree implementation that can be referenced from many other trees. Because of that, there is no way to get back to the parent node
 CIEnumerable
 CMercury.Nucleus.Trees.Tree< T >A non-balanced tree implementation that can be referenced from many other trees. Because of that, there is no way to get back to the parent node
 CIEnumerable< Instance >
 CMercury.Interpreting.InstanceListRepresents the list of instances
 CIEnumerable< IScanner >
 CMercury.Syntax.CompositeScannerMercury.Syntax.IScanner implementation that behaves like container of scanners using the Composite Design Pattern
 CIEnumerable< KeyValuePair< TKey, TValue >>
 CMercury.Nucleus.Collections.IReadOnlyMultiDictionary< TKey, TValue >Represents a multi-valued read-only dictionary, a map between a key and a collection of values.
 CIEnumerable< T >
 CMercury.Nucleus.Trees.Tree< T >A non-balanced tree implementation that can be referenced from many other trees. Because of that, there is no way to get back to the parent node
 CIEnumerator
 CMercury.Nucleus.Trees.BFSTreeEnumerator< T >Breadth-First Search tree enumerator
 CMercury.Nucleus.Trees.DFSTreeEnumerator< T >Depth-First Search tree enumerator
 CIEnumerator< T >
 CMercury.Nucleus.Trees.BFSTreeEnumerator< T >Breadth-First Search tree enumerator
 CMercury.Nucleus.Trees.DFSTreeEnumerator< T >Depth-First Search tree enumerator
 CIEquatable< ActionCall< T >>
 CMercury.Interpreting.ActionCall< T >This class represents the application of Mercury.Interpreting.InterpreterAction{T} on the Mercury.Interpreting.IFormalParameter list.
 CIEquatable< Alternative >
 CMercury.Interpreting.AlternativeRepresents an alternative of elements. It may match specified symbols or symboltypes (Nonterminals, ...).
 CIEquatable< Constant >
 CMercury.Interpreting.ConstantConstant element. Basically equivalent of Mercury.Interpreting.Alternative.
 CIEquatable< ConstantParameter >
 CMercury.Interpreting.ConstantParameterConstant parameter.
 CIEquatable< Edge >
 CMercury.Syntax.EdgeRepresents an edge in the chart created by the ChartParser. This is an immutable class.
The Edge contains four values:
 CIEquatable< IElement >
 CMercury.Interpreting.IElementElement interface
 CIEquatable< Instance >
 CMercury.Interpreting.InstanceRepresents a binding between a Mercury.Interpreting.Variable and its value
 CIEquatable< RewriteRule< T >>
 CMercury.Interpreting.RewriteRule< T >Interpreter rewrite rule
 CIEquatable< Rule >
 CMercury.Syntax.RuleRepresents a Context-Free Grammar rule. This is an immutable class
 CIEquatable< Symbol >
 CMercury.Syntax.SymbolRepresents a single symbol of the grammar. This is an immutable class.

For a symbol name to be valid it must NOT contain control or separator characters, must not be empty and must meet these conditions:
 CIEquatable< Token >
 CMercury.Scanning.TokenToken, a part of an input text recognized by tokenizer
 CIEquatable< Tree< T >>
 CMercury.Nucleus.Trees.Tree< T >A non-balanced tree implementation that can be referenced from many other trees. Because of that, there is no way to get back to the parent node
 CIEquatable< Variable >
 CMercury.Interpreting.VariableRepresents a variable element that captures value and can be used on the RHS of the RewriteRule as an argument
 CIEquatable< VariableParameter >
 CMercury.Interpreting.VariableParameterRepresents a named parameter that will be replaced by an actual value of a variable captured by interpreter.
 CMercury.Interpreting.IFormalParameterRepresents formal parameters.
 CMercury.Interpreting.ActionCall< T >This class represents the application of Mercury.Interpreting.InterpreterAction{T} on the Mercury.Interpreting.IFormalParameter list.
 CMercury.Interpreting.ConstantParameterConstant parameter.
 CMercury.Interpreting.VariableParameterRepresents a named parameter that will be replaced by an actual value of a variable captured by interpreter.
 CMercury.Interpreting.IInterpreter< T >Interface for interpreters that create objects from derivation trees according to RewriteRules.
 CMercury.Interpreting.Interpreter< T >Interprets derivation trees using rewrite rules. The type parameter T represents the target language.

 CMercury.Interpreting.SemanticInterpreter< T >Represent the semantic analysis with interpretation. Consists of two interpreters, the first one rewrites parse trees, the second one interprets them. This class serves as a wrapper so it could be used in the Mercury.Analyser{T,TResult} class.
 CMercury.Interpreting.IInterpreterContextFactoryFactory of context.
 CMercury.Interpreting.EmptyContextFactoryProduces contexts with no custom data
 CMercury.Interpreting.InterpreterAction< T >Function that wraps constant values in the RHS
 CMercury.Interpreting.GenericAction< T >Represents an action that infers its return type only after it is provided with types of its arguments.
 CMercury.Interpreting.InterpreterAction< T, U >Interpreter action with a safer return type.
 CMercury.Interpreting.InterpreterContext< T >Interpreter Context class. Some languages may use it to override it and remember data when parse trees are being interpreted.
 CMercury.Interpreting.InterpreterResult< T >Result of the interpretation.
 CMercury.Syntax.IParserCreates a derivation tree from the list of input tokens
 CMercury.Syntax.ChartParserThread-safe wrapper for ChartParserInternal class.
 CIReadOnlyCollection< RewriteRule< T >>
 CMercury.Interpreting.RewriteRuleCollection< T >A read-only collection of rewrite rules
 CMercury.Syntax.IScannerScanner scans input tokens and creates additional rules for parsing
 CMercury.Syntax.BasicScannerGenerates four Nonterminals @Symbol, @Keyword, @Number and @String based on the given map and types of input tokens.
 CMercury.Syntax.CompositeScannerMercury.Syntax.IScanner implementation that behaves like container of scanners using the Composite Design Pattern
 CMercury.Scanning.ITokenizerThe tokenizer interface.
 CMercury.Scanning.TokenizerA default implementation of ITokenizer interface using Microsoft Regular Expressions.

Splits tokens in the following fashion:
 CMercury.LanguageInfo< T >Represents a collection of information required to analyze a language with Mercury Mercury.Analyser{T,TValue}.
 CMercury.Syntax.ParserResultRepresents the result returned by the parser.
 CMercury.Interpreting.RewriteRuleCollectionBuilder< T >Can be used to construct Mercury.Interpreting.RewriteRuleCollection{T}
 CTree< IElement >
 CMercury.Interpreting.StructureRepresents a tree of Mercury.Interpreting.IElement instances. Must match precisely to the parse tree.