OpenMW
Classes | Public Member Functions | Private Attributes
Compiler::Extensions Class Reference

Collection of compiler extensions. More...

#include <extensions.hpp>

List of all members.

Classes

struct  Function
struct  Instruction

Public Member Functions

 Extensions ()
int searchKeyword (const std::string &keyword) const
bool isFunction (int keyword, char &returnType, std::string &argumentType, bool explicitReference) const
bool isInstruction (int keyword, std::string &argumentType, bool explicitReference) const
 Is this keyword registered with a function? If yes, return argument types.
void registerFunction (const std::string &keyword, char returnType, const std::string &argumentType, int code, int codeExplicit=-1)
void registerInstruction (const std::string &keyword, const std::string &argumentType, int code, int codeExplicit=-1)
void generateFunctionCode (int keyword, std::vector< Interpreter::Type_Code > &code, Literals &literals, const std::string &id, int optionalArguments) const
 Append code for function to code.
void generateInstructionCode (int keyword, std::vector< Interpreter::Type_Code > &code, Literals &literals, const std::string &id, int optionalArguments) const
 Append code for function to code.
void listKeywords (std::vector< std::string > &keywords) const
 Append all known keywords to \æ kaywords.

Private Attributes

int mNextKeywordIndex
std::map< std::string, int > mKeywords
std::map< int, FunctionmFunctions
std::map< int, InstructionmInstructions

Detailed Description

Collection of compiler extensions.


Constructor & Destructor Documentation


Member Function Documentation

void Compiler::Extensions::generateFunctionCode ( int  keyword,
std::vector< Interpreter::Type_Code > &  code,
Literals literals,
const std::string &  id,
int  optionalArguments 
) const

Append code for function to code.

void Compiler::Extensions::generateInstructionCode ( int  keyword,
std::vector< Interpreter::Type_Code > &  code,
Literals literals,
const std::string &  id,
int  optionalArguments 
) const

Append code for function to code.

bool Compiler::Extensions::isFunction ( int  keyword,
char &  returnType,
std::string &  argumentType,
bool  explicitReference 
) const

Is this keyword registered with a function? If yes, return return and argument types.

bool Compiler::Extensions::isInstruction ( int  keyword,
std::string &  argumentType,
bool  explicitReference 
) const

Is this keyword registered with a function? If yes, return argument types.

void Compiler::Extensions::listKeywords ( std::vector< std::string > &  keywords) const

Append all known keywords to \æ kaywords.

void Compiler::Extensions::registerFunction ( const std::string &  keyword,
char  returnType,
const std::string &  argumentType,
int  code,
int  codeExplicit = -1 
)

Register a custom function

  • keyword must be all lower case.
  • keyword must be unique
  • if explicit references are not supported, segment5codeExplicit must be set to -1
    Note:
    Currently only segment 3 and segment 5 opcodes are supported.
void Compiler::Extensions::registerInstruction ( const std::string &  keyword,
const std::string &  argumentType,
int  code,
int  codeExplicit = -1 
)

Register a custom instruction

  • keyword must be all lower case.
  • keyword must be unique
  • if explicit references are not supported, segment5codeExplicit must be set to -1
    Note:
    Currently only segment 3 and segment 5 opcodes are supported.
int Compiler::Extensions::searchKeyword ( const std::string &  keyword) const

Return extension keyword code, that is assigned to the string keyword.

  • if no match is found 0 is returned.
  • keyword must be all lower case.

Member Data Documentation

std::map<int, Function> Compiler::Extensions::mFunctions [private]
std::map<std::string, int> Compiler::Extensions::mKeywords [private]

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