Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef CMACRO_HPP
00032 #define CMACRO_HPP
00033
00034 #include "glue.h"
00035 #include "cdecl.h"
00036
00037
00038
00039 class CSymbol;
00040
00044 class CMacro : public CDecl
00045 {
00046 private:
00047 char* body;
00048 char** argList;
00049 int complex:1;
00050 int defined:1;
00051 int zone;
00052 public:
00059 static CMacro* LookupMacro( const char* aName );
00060
00066 CMacro( CSymbol* aSymbol, Coord_t* aLoc );
00072 virtual CDecl* Clone( CObstack* heap );
00077 char* GetBody( void );
00082 void SetBody( char* aBody );
00088 int GetZone( void ) { return zone; }
00093 void SetZone( int aZone ) { zone = aZone; }
00098 void SetComplex( int aComplex );
00103 int IsComplex( void );
00108 char** GetArgList( void );
00114 void SetArgList( char** argList );
00119 virtual void Dump( FILE* f );
00124 int IsDefined( void );
00129 void SetDefined( int aDefined );
00130 protected:
00136 void Copy( CObstack* heap, CMacro& d );
00137 private:
00138
00139
00140
00141 CMacro( const CMacro& );
00142 };
00143
00144 #endif // CMACRO_HPP