Changeset 288 in dev for trunk/abdev/BasicCompiler_Common/include/Variable.h
- Timestamp:
- Aug 17, 2007, 7:36:51 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/include/Variable.h
r287 r288 5 5 #include <Symbol.h> 6 6 #include <Type.h> 7 #include <Binary.h> 7 8 8 9 class Variable : public Symbol … … 223 224 class Variables : public vector<Variable *> 224 225 { 226 protected: 225 227 int allSize; 226 int allInitSize;227 public:228 Variables()229 : allSize( 0 )230 , allInitSize( 0 )231 {232 }233 ~Variables(){234 Clear();235 }236 237 void Clear(){238 for( int i=0; i<(int)this->size(); i++ ){239 delete (*this)[i];240 }241 242 allSize = 0;243 allInitSize = 0;244 clear();245 }246 void PullOutAll()247 {248 clear();249 }250 251 bool DuplicateCheck( const Symbol &symbol ) const;252 253 const Variable *BackSearch( const Symbol &symbol ) const;254 const Variable *Find( const Symbol &symbol )const;255 256 void Add( Variable *pVar, bool isResetOffsetAddress = true );257 258 int GetAllSize() const259 {260 return allSize;261 }262 int GetAllInitSize() const263 {264 return allInitSize;265 }266 267 228 268 229 // XMLシリアライズ用 … … 275 236 ar & boost::serialization::make_nvp("vector_Variable", boost::serialization::base_object<vector<Variable *>>(*this)); 276 237 } 238 239 public: 240 Variables() 241 : allSize( 0 ) 242 { 243 } 244 ~Variables(){ 245 Clear(); 246 } 247 248 void Clear(){ 249 for( int i=0; i<(int)this->size(); i++ ){ 250 delete (*this)[i]; 251 } 252 253 allSize = 0; 254 clear(); 255 } 256 void PullOutAll() 257 { 258 clear(); 259 } 260 261 int GetAllSize() const 262 { 263 return allSize; 264 } 265 266 bool DuplicateCheck( const Symbol &symbol ) const; 267 268 const Variable *BackSearch( const Symbol &symbol ) const; 269 const Variable *Find( const Symbol &symbol )const; 277 270 }; 278 271 279 class GlobalVar : public Variable272 class GlobalVars : public Variables 280 273 { 281 BYTE *initBuffer; 282 public: 283 GlobalVar() 284 { 285 initBuffer = (BYTE *)malloc( 1 ); 286 } 287 ~GlobalVar() 288 { 289 free( initBuffer ); 290 } 274 public: 275 Binary initAreaBuffer; 276 277 // XMLシリアライズ用 278 private: 279 friend class boost::serialization::access; 280 template<class Archive> void serialize(Archive& ar, const unsigned int version) 281 { 282 trace_for_serialize( "serializing - GlobalVars" ); 283 284 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Variables ); 285 ar & BOOST_SERIALIZATION_NVP( initAreaBuffer ); 286 } 287 public: 288 GlobalVars() 289 { 290 } 291 ~GlobalVars() 292 { 293 } 294 295 void Add( Variable *pVar, bool isResetOffsetAddress = true ); 291 296 };
Note:
See TracChangeset
for help on using the changeset viewer.