Ignore:
Timestamp:
Jun 10, 2008, 11:40:17 PM (16 years ago)
Author:
dai_9181
Message:

libファイルを跨ったテンプレート展開に対応。

Location:
trunk/ab5.0/abdev/ab_common/include/Lexical
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h

    r603 r636  
    7272    }
    7373
    74     const CClass &GetClass() const{
     74    const CClass &GetClass() const
     75    {
    7576        return *pInterfaceClass;
    7677    }
  • trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h

    r603 r636  
    6969
    7070    // 静的リンク
    71     void StaticLink( Meta &meta, long dataSectionBaseOffset, int sourceIndexBase );
     71    void StaticLink( Meta &meta, long dataSectionBaseOffset, const std::vector<int> &relationTable );
    7272
    7373    const NamespaceScopesCollection &GetNamespaces() const
  • trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h

    r603 r636  
    125125    int lineNum;
    126126    long nativeCodePos;
    127     int sourceIndex;
     127    int relationalObjectModuleIndex;
    128128    long sourceCodePos;
    129129    DWORD codeType;
     
    138138        ar & BOOST_SERIALIZATION_NVP( lineNum );
    139139        ar & BOOST_SERIALIZATION_NVP( nativeCodePos );
    140         ar & BOOST_SERIALIZATION_NVP( sourceIndex );
     140        ar & BOOST_SERIALIZATION_NVP( relationalObjectModuleIndex );
    141141        ar & BOOST_SERIALIZATION_NVP( sourceCodePos );
    142142        ar & BOOST_SERIALIZATION_NVP( codeType );
     
    144144
    145145public:
    146     SourceLine( int lineNum, int nativeCodePos, int sourceIndex, int sourceCodePos, DWORD codeType )
     146    SourceLine( int lineNum, int nativeCodePos, int relationalObjectModuleIndex, int sourceCodePos, DWORD codeType )
    147147        : lineNum( lineNum )
    148148        , nativeCodePos( nativeCodePos )
    149         , sourceIndex( sourceIndex )
     149        , relationalObjectModuleIndex( relationalObjectModuleIndex )
    150150        , sourceCodePos( sourceCodePos )
    151151        , codeType( codeType )
     
    164164        return nativeCodePos;
    165165    }
    166     int GetSourceIndex() const
    167     {
    168         return sourceIndex;
    169     }
    170     void SetSourceIndex( int sourceIndex )
    171     {
    172         this->sourceIndex = sourceIndex;
     166    int GetRelationalObjectModuleIndex() const
     167    {
     168        return relationalObjectModuleIndex;
     169    }
     170    void SetRelationalObjectModuleIndex( int relationalObjectModuleIndex )
     171    {
     172        this->relationalObjectModuleIndex = relationalObjectModuleIndex;
    173173    }
    174174    long GetSourceCodePos() const
     
    259259
    260260    void ResetDataSectionBaseOffset( long dataSectionBaseOffset );
    261     void ResetSourceIndexes( long sourceIndexBase );
     261    void ResetSourceIndexes( const std::vector<int> &relationTable );
    262262};
  • trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h

    r632 r636  
    66    // オブジェクトモジュール名
    77    std::string name;
     8
     9    // 関連オブジェクトモジュールの名前リスト
     10    Jenga::Common::Strings relationalObjectModuleNames;
    811
    912    // メタ情報
     
    1821private:
    1922    // ソースコード
    20     int currentSourceIndex;
    21     BasicSources sources;
     23    BasicSource source;
    2224
    2325    // XMLシリアライズ用
     
    3335
    3436        ar & BOOST_SERIALIZATION_NVP( name );
     37        ar & BOOST_SERIALIZATION_NVP( relationalObjectModuleNames );
    3538        ar & BOOST_SERIALIZATION_NVP( meta );
    3639        ar & BOOST_SERIALIZATION_NVP( globalNativeCode );
    3740        ar & BOOST_SERIALIZATION_NVP( dataTable );
    38         ar & BOOST_SERIALIZATION_NVP( currentSourceIndex );
    39         ar & BOOST_SERIALIZATION_NVP( sources );
     41        ar & BOOST_SERIALIZATION_NVP( source );
    4042    }
    4143
     
    5153        this->name = name;
    5254    }
    53     int GetCurrentSourceIndex() const
     55    const BasicSource &GetSource() const
    5456    {
    55         return currentSourceIndex;
     57        return source;
    5658    }
    57     const BasicSource &GetCurrentSource() const
     59    BasicSource &GetSource()
    5860    {
    59         return sources[currentSourceIndex];
     61        return source;
    6062    }
    61     BasicSource &GetCurrentSource()
    62     {
    63         return sources[currentSourceIndex];
    64     }
    65     void SetCurrentSourceIndex( int currentSourceIndex )
    66     {
    67         this->currentSourceIndex = currentSourceIndex;
    68     }
    69     const BasicSource &GetSource( int sourceIndex ) const
    70     {
    71         return sources[sourceIndex];
    72     }
    73     BasicSources &GetSources()
    74     {
    75         return sources;
    76     }
     63
     64    // 下記の関連になるようなテーブルを取得する
     65    // 要素 = 古いインデックス、値 = 新しいインデックス
     66    const std::vector<int> GetRelationTable( const Jenga::Common::Strings &oldRelationalObjectModule );
    7767
    7868    bool Read( const std::string &filePath );
  • trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h

    r632 r636  
    1111    template<class Archive> void serialize(Archive& ar, const unsigned int version)
    1212    {
    13         trace_for_serialize( "serializing - IncludedFilesRelation" );
    14 
    1513        ar & BOOST_SERIALIZATION_NVP( filePaths );
    1614        ar & BOOST_SERIALIZATION_NVP( lineFileNumbers );
     
    119117    template<class Archive> void load(Archive& ar, const unsigned int version)
    120118    {
    121         trace_for_serialize( "serializing(load) - BasicSource" );
    122 
    123119        std::string _buffer;
    124120        ar & BOOST_SERIALIZATION_NVP( _buffer );
     
    139135    template<class Archive> void save(Archive& ar, const unsigned int version) const
    140136    {
    141         trace_for_serialize( "serializing(save) - BasicSource" );
    142 
    143137        // 保存準備
    144138        char *tempCode = (char *)calloc( (length+1) * 3, 1 );
     
    252246    int cannotIncludeSourcePos;
    253247};
    254 typedef std::vector<BasicSource> BasicSources;
     248class BasicSources
     249    : public std::vector<BasicSource>
     250    , public Jenga::Common::BoostSerializationSupport<BasicSources>
     251{
     252    // XMLシリアライズ用
     253private:
     254    virtual const char *RootTagName() const
     255    {
     256        return "basicSources";
     257    }
     258    friend class boost::serialization::access;
     259    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     260    {
     261        ar & boost::serialization::make_nvp("vector_BasicSource", boost::serialization::base_object<std::vector<BasicSource>>(*this));
     262    }
     263};
    255264
    256265class SourceCodePosition
Note: See TracChangeset for help on using the changeset viewer.