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.OperationAction< T, U, V > Class Template Reference

Represents an operation on two values. More...

Inheritance diagram for Mercury.Interpreting.OperationAction< T, U, V >:
Mercury.Interpreting.InterpreterAction< T, U > Mercury.Interpreting.InterpreterAction< T >

Public Member Functions

 OperationAction (string name, Func< U, U, V > f, ArgumentType flags=ArgumentType.None)
 Initializes a new instance of the OperationAction{T, U, V} class. More...
 
override V Evaluate (Argument[] arguments, RecursiveEval< T > eval, InterpreterContext< T > context)
 Evaluates the action. More...
 
- Public Member Functions inherited from Mercury.Interpreting.InterpreterAction< T, U >
 InterpreterAction (string name, Tuple< int, int > arity, ArgumentType[] argtypes, bool allowswild=true)
 Initializes a new instance of the InterpreterAction{T,U} class. See Mercury.Interpreting.InterpreterAction{T} for better explanation. More...
 
override 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...
 
- 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...
 

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 operation on two values.

Template Parameters
TInterpreter return type
UInput value types
VOutput type
Type Constraints
T :class 

Definition at line 369 of file BasicActions.cs.

Constructor & Destructor Documentation

Mercury.Interpreting.OperationAction< T, U, V >.OperationAction ( string  name,
Func< U, U, V >  f,
ArgumentType  flags = ArgumentType.None 
)

Initializes a new instance of the OperationAction{T, U, V} class.

Parameters
nameThe action name
fThe lambda function
flagsAdditional flags
Exceptions
System.ArgumentNullExceptionWhen f is null

Definition at line 383 of file BasicActions.cs.

Member Function Documentation

override V Mercury.Interpreting.OperationAction< T, U, V >.Evaluate ( Argument[]  arguments,
RecursiveEval< T >  eval,
InterpreterContext< T >  context 
)
virtual

Evaluates the action.

Parameters
argumentsArguments provided by the interpreter.
evalThe recursive evaluation delegate.
contextThe interpreter context.
Returns

Implements Mercury.Interpreting.InterpreterAction< T, U >.

Definition at line 395 of file BasicActions.cs.


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