Ignore:
Timestamp:
Jul 28, 2007, 1:30:22 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

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

    r245 r246  
    1212void ReallocNativeCodeBuffer();
    1313
     14//Goto未知ラベル
     15class GotoLabelSchedule
     16{
     17    std::string name;
     18    int line;
     19    int nativeCodePos;
     20    int sourceCodePos;
     21public:
     22    GotoLabelSchedule( const std::string &name, int nativeCodePos, int sourceCodePos )
     23        : name( name )
     24        , line( -1 )
     25        , nativeCodePos( nativeCodePos )
     26        , sourceCodePos( sourceCodePos )
     27    {
     28    }
     29    GotoLabelSchedule( int line, int nativeCodePos, int sourceCodePos )
     30        : line( line )
     31        , nativeCodePos( nativeCodePos )
     32        , sourceCodePos( sourceCodePos )
     33    {
     34    }
     35    const std::string &GetName() const
     36    {
     37        return name;
     38    }
     39    int GetLineNum() const
     40    {
     41        return line;
     42    }
     43    int GetNativeCodePos() const
     44    {
     45        return nativeCodePos;
     46    }
     47    int GetSourceCodePos() const
     48    {
     49        return sourceCodePos;
     50    }
     51};
     52
    1453class CodeGenerator
    1554{
     
    61100
    62101public:
     102
     103    // Gotoスケジュールの管理
     104    std::vector<GotoLabelSchedule> gotoLabelSchedules;
    63105
    64106    CodeGenerator()
     
    141183    const PertialSchedule *op_jmp( long offset, int op_size = sizeof(char), bool isPertialSchedule = false, bool isSelfOpcodeOffset = false );
    142184    void op_jmp_continue();
     185    void op_jmp_goto_schedule( const GotoLabelSchedule &gotoLabelSchedule );
    143186
    144187
Note: See TracChangeset for help on using the changeset viewer.