Mercury library  1.0
Translation of CFG grammars into an object model (Bachelor's thesis).
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties
Public Member Functions | List of all members
Mercury.Interpreting.GenericAction< T > Class Template Referenceabstract

Represents an action that infers its return type only after it is provided with types of its arguments. More...

Inheritance diagram for Mercury.Interpreting.GenericAction< T >:
Mercury.Interpreting.InterpreterAction< T > Mercury.Interpreting.ArithmeticAction< T >

Public Member Functions

 GenericAction (string name, Tuple< int, int > arity, ArgumentType[] argtypes, bool allowswild=true)
 Initializes a GenericAction{T} instance. More...
 
abstract ArgumentType InferReturnType (ArgumentType expected, ArgumentType[] actual)
 Infers the actual return type from provided parameter types More...
 
- Public Member Functions inherited from Mercury.Interpreting.InterpreterAction< T >
 InterpreterAction (string name, Tuple< int, int > arity, ArgumentType[] argtypes, bool allowswild=true)
 Initializes a new instance of the InterpreterAction{T} class. The target application can inherit from this class, but rather one of Mercury.Interpreting.InterpreterAction{T,U} or Mercury.Interpreting.GenericAction{T} is recommended to derive.

Conditions:
More...
 
abstract object Invoke (Argument[] arguments, RecursiveEval< T > eval, InterpreterContext< T > context)
 Evaluates the arguments.
It is guaranteed to have a valid number of arguments (specified by Arity) and that no argument is null UNLESS the flag Mercury.Interpreting.ArgumentType contains Lazy or Null. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Mercury.Interpreting.InterpreterAction< T >
void CheckDefinition ()
 
- Properties inherited from Mercury.Interpreting.InterpreterAction< T >
string Name [get, set]
 Action name. More...
 
Tuple< int, int > Arity [get, set]
 Minimum and maximum number of arguments. More...
 
ArgumentType ReturnType [get, set]
 Action return type. More...
 
ArgumentType[] ArgumentTypes [get, set]
 Allowed types of arguments. If more arguments specified (within range of Arity), the last type in this array will be used. It can be empty if and only if arity is (0,0). More...
 
bool AllowsWildcard [get, set]
 Indicates whether a Mercury.Interpreting.Wildcard can be an argument of this action. More...
 

Detailed Description

Represents an action that infers its return type only after it is provided with types of its arguments.

Template Parameters
TInterpreter output type.
Type Constraints
T :class 

Definition at line 214 of file InterpreterAction.cs.

Constructor & Destructor Documentation

Mercury.Interpreting.GenericAction< T >.GenericAction ( string  name,
Tuple< int, int >  arity,
ArgumentType[]  argtypes,
bool  allowswild = true 
)

Initializes a GenericAction{T} instance.

Parameters
nameThe action name.
arityThe action arity.
argtypesThe argument types mask
allowswildIndicates whether this action can accept wildcards.

Definition at line 226 of file InterpreterAction.cs.

Member Function Documentation

abstract ArgumentType Mercury.Interpreting.GenericAction< T >.InferReturnType ( ArgumentType  expected,
ArgumentType[]  actual 
)
pure virtual

Infers the actual return type from provided parameter types

Parameters
expectedExpected return type flags.
actualActual argument types.
Returns
The actual return type. Must contain exactly ONE bit set, unless it is Integer | Real

Implemented in Mercury.Interpreting.ArithmeticAction< T >.


The documentation for this class was generated from the following file: