#include <ExtendedInstruction.h>
Inheritance diagram for FunctorExtendedInstructionDef< T >:

Public Member Functions | |
| ExtendedInstruction * | createInstruction (vector< RegisterReference * > const ®s) |
| Creates an instruction of this type which references a particular set of registers. | |
| string | getName () |
| Returns the name of this instruction. | |
| const vector< StandardTypeDescriptorOrdinal > & | getParameterTypes () |
| Returns the parameter types of this instruction. | |
| string | getSignature () const |
| Returns the signature of this instruction. | |
Public Attributes | |
| T::Functor | _functor |
Protected Member Functions | |
| FunctorExtendedInstructionDef (string const &name, vector< StandardTypeDescriptorOrdinal > const ¶meterTypes, typename T::Functor functor) | |
| Creates a FunctorExtendedInstructionDef. | |
Protected Attributes | |
| string | _name |
| vector< StandardTypeDescriptorOrdinal > | _parameterTypes |
| string | _signature |
Friends | |
| class | ExtendedInstructionTable |
Template parameter 'T' must be a type such as ExtendedInstruction2<int,double>. It must have a type T:Functor.
Definition at line 115 of file ExtendedInstruction.h.
| FunctorExtendedInstructionDef< T >::FunctorExtendedInstructionDef | ( | string const & | name, | |
| vector< StandardTypeDescriptorOrdinal > const & | parameterTypes, | |||
| typename T::Functor | functor | |||
| ) | [inline, explicit, protected] |
Creates a FunctorExtendedInstructionDef.
Only ExtendedInstructionTable calls this.
Definition at line 125 of file ExtendedInstruction.h.
00129 : ExtendedInstructionDef(name, parameterTypes), 00130 _functor(functor) 00131 { 00132 assert(functor != NULL); 00133 }
| ExtendedInstruction* FunctorExtendedInstructionDef< T >::createInstruction | ( | vector< RegisterReference * > const & | regs | ) | [inline, virtual] |
Creates an instruction of this type which references a particular set of registers.
The registers supplied must be the same number and type as the registers supported by the function.
Implements ExtendedInstructionDef.
Definition at line 138 of file ExtendedInstruction.h.
| string ExtendedInstructionDef::getName | ( | ) | [inline, inherited] |
Returns the name of this instruction.
Definition at line 72 of file ExtendedInstruction.h.
Referenced by CalcExtContextTest::setupExtendedTestInstructions(), testConvertDecimal(), testConvertDoubleToFloat(), testConvertExactNumberToString(), testConvertFloatToDouble(), testConvertFloatToIntTypes(), testConvertIntTypesToFloat(), and testConvertStringToExactNumber().
00073 { 00074 return _name; 00075 }
| const vector<StandardTypeDescriptorOrdinal>& ExtendedInstructionDef::getParameterTypes | ( | ) | [inline, inherited] |
Returns the parameter types of this instruction.
Definition at line 80 of file ExtendedInstruction.h.
Referenced by TestCalculator::setUp(), CalcExtContextTest::setupExtendedTestInstructions(), testConvertDecimal(), testConvertDoubleToFloat(), testConvertExactNumberToString(), testConvertFloatToDouble(), testConvertFloatToIntTypes(), testConvertIntTypesToFloat(), and testConvertStringToExactNumber().
00081 { 00082 return _parameterTypes; 00083 }
| string ExtendedInstructionDef::getSignature | ( | ) | const [inline, inherited] |
Returns the signature of this instruction.
The signature is always of the form "<name>(<type0>,<type1>,...)", for example "substr(ptr,ptr,int,intr)". The signature is used to identify instructions in an ExtendedInstructionTable, and in assembly language instructions such as "CALL 'substr(ptr,ptr,int,ptr) &0, &1, &2, &3".
Definition at line 91 of file ExtendedInstruction.h.
Referenced by ExtendedInstructionTable::add(), ExtendedInstruction5Context< T0, T1, T2, T3, T4 >::describe(), ExtendedInstruction5< T0, T1, T2, T3, T4 >::describe(), ExtendedInstruction4Context< T0, T1, T2, T3 >::describe(), ExtendedInstruction4< T0, T1, T2, T3 >::describe(), ExtendedInstruction3Context< T0, T1, T2 >::describe(), ExtendedInstruction3< T0, T1, T2 >::describe(), ExtendedInstruction2Context< T0, T1 >::describe(), ExtendedInstruction2< T0, T1 >::describe(), ExtendedInstruction1Context< T0 >::describe(), and ExtendedInstruction1< T0 >::describe().
00092 { 00093 return _signature; 00094 }
friend class ExtendedInstructionTable [friend] |
| T::Functor FunctorExtendedInstructionDef< T >::_functor |
Definition at line 135 of file ExtendedInstruction.h.
Referenced by ExtendedInstruction5Context< T0, T1, T2, T3, T4 >::exec(), ExtendedInstruction5< T0, T1, T2, T3, T4 >::exec(), ExtendedInstruction4Context< T0, T1, T2, T3 >::exec(), ExtendedInstruction4< T0, T1, T2, T3 >::exec(), ExtendedInstruction3Context< T0, T1, T2 >::exec(), ExtendedInstruction3< T0, T1, T2 >::exec(), ExtendedInstruction2Context< T0, T1 >::exec(), ExtendedInstruction2< T0, T1 >::exec(), ExtendedInstruction1Context< T0 >::exec(), and ExtendedInstruction1< T0 >::exec().
string ExtendedInstructionDef::_name [protected, inherited] |
Definition at line 47 of file ExtendedInstruction.h.
Referenced by ExtendedInstructionDef::computeSignature().
vector<StandardTypeDescriptorOrdinal> ExtendedInstructionDef::_parameterTypes [protected, inherited] |
Definition at line 48 of file ExtendedInstruction.h.
Referenced by ExtendedInstructionDef::computeSignature().
string ExtendedInstructionDef::_signature [protected, inherited] |
Definition at line 49 of file ExtendedInstruction.h.
1.5.1