Ignore:
Timestamp:
Jul 12, 2007, 2:58:26 AM (17 years ago)
Author:
dai_9181
Message:

コード全体のリファクタリングを実施

File:
1 edited

Legend:

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

    r201 r206  
    33#include <jenga/include/common/BoostXmlSupport.h>
    44
    5 #include <jenga/include/smoothie/ObjectModule.h>
     5#include <option.h>
     6#include <Program.h>
     7#include <Class.h>
     8#include <Procedure.h>
     9#include <TypeDef.h>
     10#include <Variable.h>
     11#include <Const.h>
    612
    7 #include <ClassImpl.h>
    8 #include <ProcedureImpl.h>
    9 #include <TypeDef.h>
    10 
    11 class MetaImpl : public Meta, public Jenga::Common::BoostXmlSupport<MetaImpl>
     13class MetaImpl : public Jenga::Common::BoostXmlSupport<MetaImpl>
    1214{
    1315    // 名前空間
    1416    NamespaceScopesCollection namespaceScopesCollection;
    1517
     18    // 関数・メソッド
     19    UserProcs userProcs;
     20
    1621    // クラス
    17     ClassesImpl classesImpl;
    18     Classes *pNowClassesForDebugger;
     22    Classes classesImpl;
     23
     24    // グローバル変数
     25    Variables globalVars;
     26
     27    // グローバル定数
     28    Consts globalConsts;
     29
     30    // グローバル定数マクロ
     31    ConstMacros globalConstMacros;
    1932
    2033    // blittable型
     
    2437    TypeDefCollection typeDefs;
    2538
     39    // 関数ポインタ
     40    ProcPointers procPointers;
     41
     42    // XMLシリアライズ用
     43private:
     44    virtual const char *RootTagName() const
     45    {
     46        return "metaImpl";
     47    }
     48    friend class boost::serialization::access;
     49    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     50    {
     51        trace_for_serialize( "serializing - MetaImpl" );
     52
     53        ar & BOOST_SERIALIZATION_NVP( namespaceScopesCollection );
     54        ar & BOOST_SERIALIZATION_NVP( userProcs );
     55        ar & BOOST_SERIALIZATION_NVP( classesImpl );
     56        ar & BOOST_SERIALIZATION_NVP( globalVars );
     57        ar & BOOST_SERIALIZATION_NVP( globalConsts );
     58        ar & BOOST_SERIALIZATION_NVP( globalConstMacros );
     59        ar & BOOST_SERIALIZATION_NVP( blittableTypes );
     60        ar & BOOST_SERIALIZATION_NVP( typeDefs );
     61        ar & BOOST_SERIALIZATION_NVP( procPointers );
     62    }
     63
     64    Classes *pNowClassesForDebugger;
     65
    2666public:
    2767    MetaImpl()
    28         : Meta( new ProcPointersImpl() )
    29         , classesImpl()
     68        : classesImpl()
    3069        , pNowClassesForDebugger( &classesImpl )
    3170    {
     
    4180    }
    4281
    43     virtual Classes &GetClasses()
     82    const UserProcs &GetUserProcs() const
     83    {
     84        return userProcs;
     85    }
     86    UserProcs &GetUserProcs()
     87    {
     88        return userProcs;
     89    }
     90
     91    Classes &GetClasses()
    4492    {
    4593        return *pNowClassesForDebugger;
    4694    }
    47     virtual void SetClasses( Classes *pClasses )
     95    void SetClasses( Classes *pClasses )
    4896    {
    4997        this->pNowClassesForDebugger = pClasses;
     98    }
     99
     100    const Variables &GetGlobalVars() const
     101    {
     102        return globalVars;
     103    }
     104    Variables &GetGlobalVars()
     105    {
     106        return globalVars;
     107    }
     108
     109    const Consts &GetGlobalConsts() const
     110    {
     111        return globalConsts;
     112    }
     113    Consts &GetGlobalConsts()
     114    {
     115        return globalConsts;
     116    }
     117
     118    const ConstMacros &GetGlobalConstMacros() const
     119    {
     120        return globalConstMacros;
     121    }
     122    ConstMacros &GetGlobalConstMacros()
     123    {
     124        return globalConstMacros;
    50125    }
    51126
     
    60135    }
    61136
    62     virtual bool AutoWrite( const std::string &filePath )
     137    // 関数ポインタ
     138    ProcPointers &GetProcPointers()
     139    {
     140        return procPointers;
     141    }
     142
     143    bool AutoWrite( const std::string &filePath )
    63144    {
    64145        std::ofstream ofs( filePath.c_str() );
     
    82163        return isSuccessful;
    83164    }
    84 
    85 
    86     // XMLシリアライズ用
    87 private:
    88     virtual const char *RootTagName() const
    89     {
    90         return "metaImpl";
    91     }
    92     friend class boost::serialization::access;
    93     template<class Archive> void serialize(Archive& ar, const unsigned int version)
    94     {
    95         ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Meta );
    96         ar & BOOST_SERIALIZATION_NVP( classesImpl );
    97     }
    98165};
    99 BOOST_IS_ABSTRACT( Meta );
Note: See TracChangeset for help on using the changeset viewer.