Ignore:
Timestamp:
Mar 8, 2007, 2:49:34 AM (18 years ago)
Author:
dai_9181
Message:

すべてのオブジェクトを参照型に切り替えた。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/Compile_Statement.cpp

    r56 r64  
    9999        /////////////////////
    100100
    101         if(i2==DEF_OBJECT){
     101        if(i2==DEF_STRUCT){
    102102            //mov r14,rax
    103103            op_mov_RR(REG_R14,REG_RAX);
     
    888888    //add rax,offset(Gosubステートメントの最終ポイント)
    889889    int schedule=obp,schedule2;
    890     op_add64_value(REG_RAX,0);
     890    op_add_RV(REG_RAX,0);
    891891    schedule2=obp-sizeof(long);
    892892
     
    951951            else temp=pCompilingSubInfo->name;
    952952
     953            /*
     954            TODO: 消す
    953955            if( pCompilingSubInfo->isReturnRef ){
    954956                //参照型
     
    956958            }
    957959            else{
    958                 //値型
     960                //値型*/
    959961                char temporary[VN_SIZE];
    960962                sprintf(temporary,"%s=%s",temp,Parameter);
    961963                OpcodeCalc(temporary);
    962             }
     964            //}
    963965        }
    964966
     
    968970}
    969971
    970 void Opcode_Input(char *Parameter){
     972void Opcode_Input(const char *Parameter){
    971973    extern int cp;
    972974    int i2,i3,i4,i5,type;
    973975    BOOL bFile;
    974976    char temporary[VN_SIZE],temp2[VN_SIZE],buffer[VN_SIZE];
    975 
    976     KillStringSpaces(Parameter);
    977977
    978978    if(Parameter[0]=='#'){
     
    10841084    Opcode_CallProc(buffer,psi,0,"",0);
    10851085}
    1086 void Opcode_PrintUsing(char *Parameter,char *buffer,BOOL bFile){
     1086void Opcode_PrintUsing(const char *Parameter,char *buffer,BOOL bFile){
    10871087    extern int cp;
    10881088    int i2,i3,i4,i5;
     
    10901090    BOOL bReturnLine;
    10911091
    1092     i2=lstrlen(Parameter);
    1093     if(Parameter[i2-1]==';'){
     1092    char parms[8192];
     1093    lstrcpy( parms, Parameter );
     1094
     1095    i2=lstrlen(parms);
     1096    if(parms[i2-1]==';'){
    10941097        bReturnLine=0;
    1095         Parameter[i2-1]=0;
     1098        parms[i2-1]=0;
    10961099    }
    10971100    else bReturnLine=1;
     
    10991102    i3=lstrlen(buffer);
    11001103    for(i2=0;;i2++,i3++){
    1101         if(Parameter[i2]==';'){
     1104        if(parms[i2]==';'){
    11021105            buffer[i3]=0;
    11031106            break;
    11041107        }
    1105         buffer[i3]=Parameter[i2];
    1106         if(Parameter[i2]=='\0') break;
    1107     }
    1108     if(Parameter[i2]==';') i2++;
     1108        buffer[i3]=parms[i2];
     1109        if(parms[i2]=='\0') break;
     1110    }
     1111    if(parms[i2]==';') i2++;
    11091112
    11101113    if(bReturnLine) lstrcat(buffer,"+Ex\"\\r\\n\"");
     
    11141117    while(1){
    11151118        for(i3=0;;i2++,i3++){
    1116             if(Parameter[i2]=='\"'){
    1117                 temporary[i3]=Parameter[i2];
     1119            if(parms[i2]=='\"'){
     1120                temporary[i3]=parms[i2];
    11181121                for(i2++,i3++;;i2++,i3++){
    1119                     temporary[i3]=Parameter[i2];
    1120                     if(Parameter[i2]=='\"') break;
     1122                    temporary[i3]=parms[i2];
     1123                    if(parms[i2]=='\"') break;
    11211124                }
    11221125                continue;
    11231126            }
    1124             if(Parameter[i2]=='('){
    1125                 i5=GetStringInPare(temporary+i3,Parameter+i2);
     1127            if(parms[i2]=='('){
     1128                i5=GetStringInPare(temporary+i3,parms+i2);
    11261129                i2+=i5-1;
    11271130                i3+=i5-1;
    11281131                continue;
    11291132            }
    1130             if(Parameter[i2]=='['){
    1131                 i5=GetStringInBracket(temporary+i3,Parameter+i2);
     1133            if(parms[i2]=='['){
     1134                i5=GetStringInBracket(temporary+i3,parms+i2);
    11321135                i2+=i5-1;
    11331136                i3+=i5-1;
    11341137                continue;
    11351138            }
    1136             if(Parameter[i2]==','){
     1139            if(parms[i2]==','){
    11371140                temporary[i3]=0;
    11381141                i2++;
    11391142                break;
    11401143            }
    1141             temporary[i3]=Parameter[i2];
    1142             if(Parameter[i2]=='\0') break;
     1144            temporary[i3]=parms[i2];
     1145            if(parms[i2]=='\0') break;
    11431146        }
    11441147        if(temporary[0]=='\0'){
     
    11691172
    11701173        i4++;
    1171         if(Parameter[i2]=='\0') break;
     1174        if(parms[i2]=='\0') break;
    11721175    }
    11731176    sprintf(temp2,"_System_UsingDataType[%d]=-1",i4);
     
    11831186    Opcode_CallProc(buffer,psi,0,"",0);
    11841187}
    1185 void Opcode_Print(char *Parameter,BOOL bWrite){
     1188void Opcode_Print(const char *Parameter,BOOL bWrite){
    11861189    int i2,i3,i4,sw;
    11871190    char temporary[VN_SIZE],buffer[VN_SIZE];
    11881191    BOOL bFile;
    1189 
    1190     KillStringSpaces(Parameter);
    11911192
    11921193    if(Parameter[0]=='#'){
Note: See TracChangeset for help on using the changeset viewer.