#include <BoolPointerInstruction.h>
Inheritance diagram for BoolPointerInstructionRegister:
Static Public Member Functions | |
static void | registerInstructions () |
Static Private Member Functions | |
template<template< typename > class INSTCLASS2> | |
static void | registerTypes (vector< StandardTypeDescriptorOrdinal > const &t) |
template<typename TYPE1, template< typename > class INSTCLASS> | |
static void | registerInstance (StandardTypeDescriptorOrdinal type) |
template<typename IGNOREDDATATYPE, class INSTCLASS> | |
static void | registerInstance (StandardTypeDescriptorOrdinal type) |
template<typename TYPE1, typename TYPE2, template< typename, typename > class INSTCLASS> | |
static void | registerInstance2 (StandardTypeDescriptorOrdinal type1, StandardTypeDescriptorOrdinal type2) |
Definition at line 633 of file BoolPointerInstruction.h.
static void BoolPointerInstructionRegister::registerTypes | ( | vector< StandardTypeDescriptorOrdinal > const & | t | ) | [inline, static, private] |
Definition at line 639 of file BoolPointerInstruction.h.
00639 { 00640 00641 for (uint i = 0; i < t.size(); i++) { 00642 StandardTypeDescriptorOrdinal type = t[i]; 00643 // Type <char> below is a placeholder and is ignored. 00644 InstructionSignature sig = INSTCLASS2<char>::signature(type); 00645 switch (type) { 00646 // Array_Text, below, does not allow assembly programs 00647 // of to have say, pointer to int16s, but the language 00648 // does not have pointers defined other than 00649 // c,vc,b,vb, so this is OK for now. 00650 #define Fennel_InstructionRegisterSwitch_Array 1 00651 #include "fennel/calculator/InstructionRegisterSwitch.h" 00652 default: 00653 throw std::logic_error("Default InstructionRegister"); 00654 } 00655 } 00656 }
static void BoolPointerInstructionRegister::registerInstructions | ( | ) | [inline, static] |
Definition at line 660 of file BoolPointerInstruction.h.
References StandardTypeDescriptor::isArray(), and InstructionSignature::typeVector().
Referenced by InstructionFactory::registerInstructions().
00660 { 00661 vector<StandardTypeDescriptorOrdinal> t; 00662 // isArray, below, does not allow assembly programs of to 00663 // have say, pointer to int16s, but the language does not have 00664 // pointers defined other than c,vc,b,vb, so this is OK for now. 00665 t = InstructionSignature::typeVector(StandardTypeDescriptor::isArray); 00666 00667 // Have to do full fennel:: qualification of template 00668 // arguments below to prevent template argument 'TMPLT', of 00669 // this encapsulating class, from perverting NativeAdd into 00670 // NativeAdd<TMPLT> or something like 00671 // that. Anyway. Fennel::NativeAdd works just fine. 00672 registerTypes<fennel::BoolPointerEqual>(t); 00673 registerTypes<fennel::BoolPointerNotEqual>(t); 00674 registerTypes<fennel::BoolPointerGreater>(t); 00675 registerTypes<fennel::BoolPointerGreaterEqual>(t); 00676 registerTypes<fennel::BoolPointerLess>(t); 00677 registerTypes<fennel::BoolPointerLessEqual>(t); 00678 registerTypes<fennel::BoolPointerIsNull>(t); 00679 registerTypes<fennel::BoolPointerIsNotNull>(t); 00680 }
static void InstructionRegister::registerInstance | ( | StandardTypeDescriptorOrdinal | type | ) | [inline, static, protected, inherited] |
Definition at line 139 of file Instruction.h.
References InstructionFactory::getInstructionTable().
Referenced by ReturnInstructionRegister::registerInstructions().
00140 { 00141 StringToCreateFn* instMap = InstructionFactory::getInstructionTable(); 00142 (*instMap)[INSTCLASS<TYPE1>::signature(type).compute()] = 00143 &INSTCLASS<TYPE1>::create; 00144 }
static void InstructionRegister::registerInstance | ( | StandardTypeDescriptorOrdinal | type | ) | [inline, static, protected, inherited] |
Definition at line 161 of file Instruction.h.
References InstructionFactory::getInstructionTable().
00162 { 00163 StringToCreateFn* instMap = InstructionFactory::getInstructionTable(); 00164 (*instMap)[INSTCLASS::signature(type).compute()] = 00165 &INSTCLASS::create; 00166 }
static void InstructionRegister::registerInstance2 | ( | StandardTypeDescriptorOrdinal | type1, | |
StandardTypeDescriptorOrdinal | type2 | |||
) | [inline, static, protected, inherited] |
Definition at line 150 of file Instruction.h.
References InstructionFactory::getInstructionTable().
00153 { 00154 StringToCreateFn* instMap = InstructionFactory::getInstructionTable(); 00155 (*instMap)[INSTCLASS<TYPE1,TYPE2>::signature(type1, type2).compute()] = 00156 &INSTCLASS<TYPE1,TYPE2>::create; 00157 }