Pyrogenesis  trunk
Public Member Functions | Public Attributes | List of all members
CPreprocessor::Macro Class Reference

A macro definition. More...

Collaboration diagram for CPreprocessor::Macro:
Collaboration graph
[legend]

Public Member Functions

 Macro (const Token &iName)
 
 ~Macro ()
 
Token Expand (int iNumArgs, Token *iArgs, Macro *iMacros)
 Expand the macro value (will not work for functions) More...
 

Public Attributes

Token Name
 Macro name. More...
 
int NumArgs
 Number of arguments. More...
 
TokenArgs
 The names of the arguments. More...
 
Token Value
 The macro value. More...
 
Token Body
 Unparsed macro body (keeps the whole raw unparsed macro body) More...
 
MacroNext
 Next macro in chained list. More...
 
Token(* ExpandFunc )(CPreprocessor *iParent, int iNumArgs, Token *iArgs)
 A pointer to function implementation (if macro is really a func) More...
 
bool Expanding
 true if macro expansion is in progress More...
 

Detailed Description

A macro definition.

Constructor & Destructor Documentation

CPreprocessor::Macro::Macro ( const Token iName)
inline
CPreprocessor::Macro::~Macro ( )
inline

Member Function Documentation

CPreprocessor::Token CPreprocessor::Macro::Expand ( int  iNumArgs,
CPreprocessor::Token iArgs,
Macro iMacros 
)

Expand the macro value (will not work for functions)

Member Data Documentation

Token* CPreprocessor::Macro::Args

The names of the arguments.

Token CPreprocessor::Macro::Body

Unparsed macro body (keeps the whole raw unparsed macro body)

Token(* CPreprocessor::Macro::ExpandFunc) (CPreprocessor *iParent, int iNumArgs, Token *iArgs)

A pointer to function implementation (if macro is really a func)

bool CPreprocessor::Macro::Expanding

true if macro expansion is in progress

Token CPreprocessor::Macro::Name

Macro name.

Macro* CPreprocessor::Macro::Next

Next macro in chained list.

int CPreprocessor::Macro::NumArgs

Number of arguments.

Token CPreprocessor::Macro::Value

The macro value.


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