Ignore:
Timestamp:
Aug 17, 2007, 7:36:51 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/include/Variable.h

    r287 r288  
    55#include <Symbol.h>
    66#include <Type.h>
     7#include <Binary.h>
    78
    89class Variable : public Symbol
     
    223224class Variables : public vector<Variable *>
    224225{
     226protected:
    225227    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() const
    259     {
    260         return allSize;
    261     }
    262     int GetAllInitSize() const
    263     {
    264         return allInitSize;
    265     }
    266 
    267228
    268229    // XMLシリアライズ用
     
    275236        ar & boost::serialization::make_nvp("vector_Variable", boost::serialization::base_object<vector<Variable *>>(*this));
    276237    }
     238
     239public:
     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;
    277270};
    278271
    279 class GlobalVar : public Variable
     272class GlobalVars : public Variables
    280273{
    281     BYTE *initBuffer;
    282 public:
    283     GlobalVar()
    284     {
    285         initBuffer = (BYTE *)malloc( 1 );
    286     }
    287     ~GlobalVar()
    288     {
    289         free( initBuffer );
    290     }
     274public:
     275    Binary initAreaBuffer;
     276
     277    // XMLシリアライズ用
     278private:
     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    }
     287public:
     288    GlobalVars()
     289    {
     290    }
     291    ~GlobalVars()
     292    {
     293    }
     294
     295    void Add( Variable *pVar, bool isResetOffsetAddress = true );
    291296};
Note: See TracChangeset for help on using the changeset viewer.