Mercury library 1.0 Translation of CFG grammars into an object model (Bachelor's thesis).

- Main Page
- Packages
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1 2 3 4 5]

▼C Mercury.Analyser< T, TResult > | Wrapper class for each step of analysis.
C Mercury.Analyser< T > | Wrapper class for each step of analysis
C Mercury.AnalyserResult< T, TResult > | Holds the result of analysis. The fields hold information according to the following table:
C Mercury.Interpreting.Argument | Represents 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.
C Mercury.Interpreting.BasicActions< T > | Contains basic actions for interpretation. Type specifiers of actions are defined as follows:
C Mercury.Syntax.BasicScannerMap | Contains mapping between TokenType and Mercury.Syntax.Mapping of Mercury.Syntax.BasicScanner.
▼C Mercury.Interpreting.DataEntry | Entry base (dummy) interface.
C Mercury.Interpreting.MemoEntry< T > | Represents memoized value
C Mercury.Interpreting.RuleEntry< T > | Describes a rule that has been used to interpret a tree.
C Mercury.Interpreting.TextEntry | Stores informations logged by actions or internal Evaluator.
C Mercury.Interpreting.TreeEntry< T > | Represents an entry for tree interpretation.
C Mercury.Defaults | Global class containing cool static / convenience stuff.
C Mercury.Interpreting.EntryWriter< T > | An auxiliary class that formats the DataEntry structure and writes it into a stream.
▼C Exception |
►C Mercury.Exceptions.MercuryException | An exception thrown by the Mercury library.
►C Mercury.Exceptions.InterpretingException | An exception thrown because of problems in the Interpreting namespace.
C Mercury.Exceptions.ErrorActionException | Exception thrown by basic actions when a problem was encountered.
C Mercury.Exceptions.InvalidActionArgumentException | An exception representing a problem while type checking the Mercury.Interpreting.RewriteRule{T}.
C Mercury.Exceptions.InvalidActionCallException | An exception representing a problem with Mercury.Interpreting.ActionCall{T}
C Mercury.Exceptions.InvalidActionException | An exception representing a problem with Mercury.Interpreting.InterpreterAction{T} class.
C Mercury.Exceptions.InvalidElementException | An exception representing a problem with Mercury.Interpreting.IElement descendants.
C Mercury.Exceptions.InvalidRewriteRuleException | An exception representing a problem with Mercury.Interpreting.RewriteRule{T}.
►C Mercury.Exceptions.SyntaxException | An exception thrown when something wrong happens in the Mercury.Syntax
C Mercury.Exceptions.InvalidEdgeException | An exception thrown when attempting to create an invalid Mercury.Parser.Edge instance.
C Mercury.Exceptions.InvalidRuleException | An exception thrown when attempting to create an invalid Mercury.Syntax.Rule instance.
C Mercury.Exceptions.InvalidSymbolException | An exception thrown when attempting to create an invalid Mercury.Syntax.Symbol instance.
C Mercury.Extensions | Provides extension methods for the Mercury library.
C Mercury.Syntax.Grammar | Represents a Context-Free Grammar. This is an immutable class, to create a grammar use Mercury.Syntax.GrammarBuilder.
C Mercury.Syntax.GrammarBuilder | Class that creates grammars.
▼C IComparable< Edge > |
C Mercury.Syntax.Edge | Represents an edge in the chart created by the ChartParser. This is an immutable class. The Edge contains four values:
▼C IComparable< Rule > |
C Mercury.Syntax.Rule | Represents a Context-Free Grammar rule. This is an immutable class
▼C IComparable< Symbol > |
C Mercury.Syntax.Symbol | Represents 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:
▼C IComparable< Tree< T >> |
C Mercury.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
▼C IEnumerable |
C Mercury.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
▼C IEnumerable< Instance > |
C Mercury.Interpreting.InstanceList | Represents the list of instances
▼C IEnumerable< IScanner > |
C Mercury.Syntax.CompositeScanner | Mercury.Syntax.IScanner implementation that behaves like container of scanners using the Composite Design Pattern
▼C IEnumerable< KeyValuePair< TKey, TValue >> |
►C Mercury.Nucleus.Collections.IReadOnlyMultiDictionary< TKey, TValue > | Represents a multi-valued read-only dictionary, a map between a key and a collection of values.
►C Mercury.Nucleus.Collections.IMultiDictionary< TKey, TValue > | Represents a multi-valued dictionary, in other words a map between a key and a collection of values.
►C Mercury.Nucleus.Collections.ListMultiDictionary< TKey, TValue > | An implementation of IMultiDictionary{TKey,TValue} using T:System.Collections.Generic.List{T} as an underlying collection of values.
C Mercury.Nucleus.Collections.UniqueListMultiDictionary< TKey, TValue > | An implementation of IMultiDictionary{TKey,TValue} using T:System.Collections.Generic.List{T} as underlying collection, but opposed to ListMultiDictionary{TKey,TValue} does not allow duplicate values associated with the same key
C Mercury.Nucleus.Collections.SetMultiDictionary< TKey, TValue > | An implementation of IMultiDictionary{TKey,TValue} using T:System.Collections.Generic.HashSet{T} as an underlying collection of values.
C Mercury.Nucleus.Collections.UniqueListMultiDictionary< TKey, TValue > | An implementation of IMultiDictionary{TKey,TValue} using T:System.Collections.Generic.List{T} as underlying collection, but opposed to ListMultiDictionary{TKey,TValue} does not allow duplicate values associated with the same key
▼C IEnumerable< T > |
C Mercury.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
▼C IEnumerator |
C Mercury.Nucleus.Trees.BFSTreeEnumerator< T > | Breadth-First Search tree enumerator
C Mercury.Nucleus.Trees.DFSTreeEnumerator< T > | Depth-First Search tree enumerator
▼C IEnumerator< T > |
C Mercury.Nucleus.Trees.BFSTreeEnumerator< T > | Breadth-First Search tree enumerator
C Mercury.Nucleus.Trees.DFSTreeEnumerator< T > | Depth-First Search tree enumerator
▼C IEquatable< ActionCall< T >> |
C Mercury.Interpreting.ActionCall< T > | This class represents the application of Mercury.Interpreting.InterpreterAction{T} on the Mercury.Interpreting.IFormalParameter list.
▼C IEquatable< Alternative > |
►C Mercury.Interpreting.Alternative | Represents an alternative of elements. It may match specified symbols or symboltypes (Nonterminals, ...).
C Mercury.Interpreting.Constant | Constant element. Basically equivalent of Mercury.Interpreting.Alternative.
►C Mercury.Interpreting.Variable | Represents a variable element that captures value and can be used on the RHS of the RewriteRule as an argument
C Mercury.Interpreting.Wildcard | An element that matches zero or more values. Can be used as a variable, but the actioncall must be of arity (0, `int.MAX_VALUE`) and must accept `Tree` or `Symbol` as the argument.
▼C IEquatable< Constant > |
C Mercury.Interpreting.Constant | Constant element. Basically equivalent of Mercury.Interpreting.Alternative.
▼C IEquatable< ConstantParameter > |
C Mercury.Interpreting.ConstantParameter | Constant parameter.
▼C IEquatable< Edge > |
C Mercury.Syntax.Edge | Represents an edge in the chart created by the ChartParser. This is an immutable class. The Edge contains four values:
▼C IEquatable< IElement > |
►C Mercury.Interpreting.IElement | Element interface
C Mercury.Interpreting.Constant | Constant element. Basically equivalent of Mercury.Interpreting.Alternative.
C Mercury.Interpreting.Structure | Represents a tree of Mercury.Interpreting.IElement instances. Must match precisely to the parse tree.
C Mercury.Interpreting.Variable | Represents a variable element that captures value and can be used on the RHS of the RewriteRule as an argument
▼C IEquatable< Instance > |
C Mercury.Interpreting.Instance | Represents a binding between a Mercury.Interpreting.Variable and its value
▼C IEquatable< RewriteRule< T >> |
C Mercury.Interpreting.RewriteRule< T > | Interpreter rewrite rule
▼C IEquatable< Rule > |
C Mercury.Syntax.Rule | Represents a Context-Free Grammar rule. This is an immutable class
▼C IEquatable< Symbol > |
C Mercury.Syntax.Symbol | Represents 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:
▼C IEquatable< Token > |
C Mercury.Scanning.Token | Token, a part of an input text recognized by tokenizer
▼C IEquatable< Tree< T >> |
C Mercury.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
▼C IEquatable< Variable > |
C Mercury.Interpreting.Variable | Represents a variable element that captures value and can be used on the RHS of the RewriteRule as an argument
▼C IEquatable< VariableParameter > |
C Mercury.Interpreting.VariableParameter | Represents a named parameter that will be replaced by an actual value of a variable captured by interpreter.
▼C Mercury.Interpreting.IFormalParameter | Represents formal parameters.
C Mercury.Interpreting.ActionCall< T > | This class represents the application of Mercury.Interpreting.InterpreterAction{T} on the Mercury.Interpreting.IFormalParameter list.
C Mercury.Interpreting.ConstantParameter | Constant parameter.
C Mercury.Interpreting.VariableParameter | Represents a named parameter that will be replaced by an actual value of a variable captured by interpreter.
▼C Mercury.Interpreting.IInterpreter< T > | Interface for interpreters that create objects from derivation trees according to RewriteRules.
C Mercury.Interpreting.Interpreter< T > | Interprets derivation trees using rewrite rules. The type parameter T represents the target language.
C Mercury.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.
▼C Mercury.Interpreting.IInterpreterContextFactory | Factory of context.
C Mercury.Interpreting.EmptyContextFactory | Produces contexts with no custom data
▼C Mercury.Interpreting.InterpreterAction< T > | Function that wraps constant values in the RHS
►C Mercury.Interpreting.GenericAction< T > | Represents an action that infers its return type only after it is provided with types of its arguments.
C Mercury.Interpreting.ArithmeticAction< T > | Represents the arithmetic action. It is similar to the Mercury.Interpreting.FoldingAction{T,U,V} but does not require initial value. The minimal number of arguments is therefore 2. For instance, "1 2 3" would be evaluated as `f(f(1, 2), 3)`
►C Mercury.Interpreting.InterpreterAction< T, U > | Interpreter action with a safer return type.
C Mercury.Interpreting.ConstantAction< T, U > | Wraps a value as an action with no parameters
C Mercury.Interpreting.ConvertAction< T, U, V > | Applies the lambda function on a single value.
C Mercury.Interpreting.FoldingAction< T, U, V > | "Folds" all its arguments into one value. For instance, for "x y z" arguments this action computes `f(f(f(s,x), y), z)` where `f` is the lamda function and `s` is the `seed` parameter of the constructor
C Mercury.Interpreting.OperationAction< T, U, V > | Represents an operation on two values.
C Mercury.Interpreting.InterpreterContext< T > | Interpreter Context class. Some languages may use it to override it and remember data when parse trees are being interpreted.
C Mercury.Interpreting.InterpreterResult< T > | Result of the interpretation.
▼C Mercury.Syntax.IParser | Creates a derivation tree from the list of input tokens
C Mercury.Syntax.ChartParser | Thread-safe wrapper for ChartParserInternal class.
▼C IReadOnlyCollection< RewriteRule< T >> |
C Mercury.Interpreting.RewriteRuleCollection< T > | A read-only collection of rewrite rules
▼C Mercury.Syntax.IScanner | Scanner scans input tokens and creates additional rules for parsing
C Mercury.Syntax.BasicScanner | Generates four Nonterminals `@Symbol`, `@Keyword`, `@Number` and `@String` based on the given map and types of input tokens.
C Mercury.Syntax.CompositeScanner | Mercury.Syntax.IScanner implementation that behaves like container of scanners using the Composite Design Pattern
▼C Mercury.Scanning.ITokenizer | The tokenizer interface.
C Mercury.Scanning.Tokenizer | A default implementation of ITokenizer interface using Microsoft Regular Expressions. Splits tokens in the following fashion:
C Mercury.LanguageInfo< T > | Represents a collection of information required to analyze a language with Mercury Mercury.Analyser{T,TValue}.
C Mercury.Syntax.ParserResult | Represents the result returned by the parser.
C Mercury.Interpreting.RewriteRuleCollectionBuilder< T > | Can be used to construct Mercury.Interpreting.RewriteRuleCollection{T}
▼C Tree< IElement > |
C Mercury.Interpreting.Structure | Represents a tree of Mercury.Interpreting.IElement instances. Must match precisely to the parse tree.