Changeset 261 in dev for trunk/abdev


Ignore:
Timestamp:
Aug 3, 2007, 11:53:50 PM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r260 r261  
    403403
    404404    //ラベル管理オブジェクトを初期化
    405     extern Labels labels;
    406     labels.clear();
     405    compiler.codeGenerator.gotoLabels.clear();
    407406
    408407    //Gotoラベルスケジュール
  • trunk/abdev/BasicCompiler32/Compile_Statement.cpp

    r260 r261  
    279279
    280280int GetLabelAddress(char *LabelName,int LineNum){
    281     extern Labels labels;
    282 
    283281    if(LabelName){
    284         BOOST_FOREACH( const Label &label, labels )
     282        BOOST_FOREACH( const GotoLabel &label, compiler.codeGenerator.gotoLabels )
    285283        {
    286284            if( label.name.size() > 0 )
     
    294292    }
    295293    else{
    296         BOOST_FOREACH( const Label &label, labels )
     294        BOOST_FOREACH( const GotoLabel &label, compiler.codeGenerator.gotoLabels )
    297295        {
    298296            if( label.name.size() == 0 )
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r260 r261  
    418418
    419419        //ラベル管理オブジェクトを初期化
    420         extern Labels labels;
    421         labels.clear();
     420        compiler.codeGenerator.gotoLabels.clear();
    422421
    423422        //Gotoラベルスケジュール
  • trunk/abdev/BasicCompiler32/Opcode.h

    r260 r261  
    1919#define breakpoint compiler.codeGenerator.PutOld( (char)0xCC );
    2020
    21 
    22 //ラベルアドレス
    23 class Label
    24 {
    25 public:
    26     std::string name;
    27     int line;
    28     DWORD address;
    29 
    30     Label( const std::string &name, long nativeCodePos )
    31         : name( name )
    32         , line( -1 )
    33         , address( nativeCodePos )
    34     {
    35     }
    36     Label( int line, long nativeCodePos )
    37         : name( "" )
    38         , line( line )
    39         , address( nativeCodePos )
    40     {
    41     }
    42 };
    43 typedef std::vector<Label> Labels;
    4421
    4522//プロシージャの種類
  • trunk/abdev/BasicCompiler_Common/Compile.cpp

    r260 r261  
    1919
    2020#include <Exception.h>
    21 
    22 //ラベルアドレス
    23 Labels labels;
    2421
    2522//グローバル変数初期バッファ
     
    122119        //Goto先ラベル
    123120        extern int obp;
    124         labels.push_back( Label( Command + 1, obp ) );
     121        compiler.codeGenerator.gotoLabels.push_back( GotoLabel( Command + 1, obp ) );
    125122
    126123        //書き込みスケジュール
     
    534531                //Goto先ラベル
    535532                extern int obp;
    536                 labels.push_back( Label( (long)i3, obp ) );
     533                compiler.codeGenerator.gotoLabels.push_back( GotoLabel( (long)i3, obp ) );
    537534
    538535                //書き込みスケジュール
  • trunk/abdev/BasicCompiler_Common/include/CodeGenerator.h

    r258 r261  
    8181typedef std::vector<const GotoLabelSchedule *> GotoLabelSchedules;
    8282
     83//ラベルアドレス
     84class GotoLabel
     85{
     86public:
     87    std::string name;
     88    int line;
     89    DWORD address;
     90
     91    GotoLabel( const std::string &name, long nativeCodePos )
     92        : name( name )
     93        , line( -1 )
     94        , address( nativeCodePos )
     95    {
     96    }
     97    GotoLabel( int line, long nativeCodePos )
     98        : name( "" )
     99        , line( line )
     100        , address( nativeCodePos )
     101    {
     102    }
     103};
     104typedef std::vector<GotoLabel> GotoLabels;
     105
    83106class LexicalScope
    84107{
     
    190213
    191214    // Gotoスケジュールの管理
     215    GotoLabels gotoLabels;
    192216    GotoLabelSchedules gotoLabelSchedules;
    193217
Note: See TracChangeset for help on using the changeset viewer.