Ignore:
Timestamp:
Aug 3, 2007, 11:28:19 AM (17 years ago)
Author:
dai_9181
Message:

Labelクラスをリファクタリング

File:
1 edited

Legend:

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

    r254 r260  
    279279
    280280int GetLabelAddress(char *LabelName,int LineNum){
    281     extern int MaxLabelNum;
    282     extern LABEL *pLabelNames;
    283     int i;
     281    extern Labels labels;
    284282
    285283    if(LabelName){
    286         for(i=0;i<MaxLabelNum;i++){
    287             if(pLabelNames[i].pName){
    288                 if(lstrcmp(LabelName,pLabelNames[i].pName)==0) return pLabelNames[i].address;
     284        BOOST_FOREACH( const Label &label, labels )
     285        {
     286            if( label.name.size() > 0 )
     287            {
     288                if( label.name == LabelName )
     289                {
     290                    return label.address;
     291                }
    289292            }
    290293        }
    291294    }
    292295    else{
    293         for(i=0;i<MaxLabelNum;i++){
    294             if(pLabelNames[i].pName==0){
    295                 if(LineNum==pLabelNames[i].line) return pLabelNames[i].address;
     296        BOOST_FOREACH( const Label &label, labels )
     297        {
     298            if( label.name.size() == 0 )
     299            {
     300                if( label.line == LineNum )
     301                {
     302                    return label.address;
     303                }
    296304            }
    297305        }
     
    309317        {
    310318            //jmp ...(schedule)
    311             extern int obp;
    312319            compiler.codeGenerator.op_jmp_goto_schedule( (const std::string)(Parameter + 1), 0, cp );
    313320        }
     
    326333        {
    327334            //jmp ...(schedule)
    328             extern int obp;
    329335            compiler.codeGenerator.op_jmp_goto_schedule( "", LineNum, cp );
    330336        }
Note: See TracChangeset for help on using the changeset viewer.