BoolPointerInstructionRegister Class Reference

#include <BoolPointerInstruction.h>

Inheritance diagram for BoolPointerInstructionRegister:

InstructionRegister List of all members.

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)

Detailed Description

Definition at line 633 of file BoolPointerInstruction.h.


Member Function Documentation

template<template< typename > class INSTCLASS2>
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     }

template<typename TYPE1, template< typename > class INSTCLASS>
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     }

template<typename IGNOREDDATATYPE, class INSTCLASS>
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     }

template<typename TYPE1, typename TYPE2, template< typename, typename > class INSTCLASS>
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     }


The documentation for this class was generated from the following file:
Generated on Mon Jun 22 04:00:25 2009 for Fennel by  doxygen 1.5.1