Changeset 64 in dev for BasicCompiler32/Compile_Statement.cpp
- Timestamp:
- Mar 8, 2007, 2:49:34 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_Statement.cpp
r55 r64 105 105 OpBuffer[obp++]=(char)0xD8; 106 106 } 107 if(i2==DEF_ OBJECT){107 if(i2==DEF_STRUCT){ 108 108 //mov ebx,eax 109 109 op_mov_RR(REG_EBX,REG_EAX); … … 1336 1336 else temp=pCompilingSubInfo->name; 1337 1337 1338 /* 1339 TODO: 消す 1338 1340 if( pCompilingSubInfo->isReturnRef ){ 1339 1341 //参照型 … … 1341 1343 } 1342 1344 else{ 1343 //値型 1345 //値型*/ 1344 1346 char temporary[VN_SIZE]; 1345 1347 sprintf(temporary,"%s=%s",temp,Parameter); 1346 1348 OpcodeCalc(temporary); 1347 }1349 //} 1348 1350 } 1349 1351 … … 1353 1355 } 1354 1356 1355 void Opcode_Input(c har *Parameter){1357 void Opcode_Input(const char *Parameter){ 1356 1358 extern int cp; 1357 1359 int i2,i3,i4,i5,type; 1358 1360 BOOL bFile; 1359 1361 char temporary[VN_SIZE],temp2[VN_SIZE],buffer[VN_SIZE]; 1360 1361 KillStringSpaces(Parameter);1362 1362 1363 1363 if(Parameter[0]=='#'){ … … 1469 1469 Opcode_CallProc(buffer,psi,0,"",0); 1470 1470 } 1471 void Opcode_PrintUsing(c har *Parameter,char *buffer,BOOL bFile){1471 void Opcode_PrintUsing(const char *Parameter,char *buffer,BOOL bFile){ 1472 1472 extern int cp; 1473 1473 int i2,i3,i4,i5; … … 1475 1475 BOOL bReturnLine; 1476 1476 1477 i2=lstrlen(Parameter); 1478 if(Parameter[i2-1]==';'){ 1477 char parms[8192]; 1478 lstrcpy( parms, Parameter ); 1479 1480 i2=lstrlen(parms); 1481 if(parms[i2-1]==';'){ 1479 1482 bReturnLine=0; 1480 Parameter[i2-1]=0;1483 parms[i2-1]=0; 1481 1484 } 1482 1485 else bReturnLine=1; … … 1484 1487 i3=lstrlen(buffer); 1485 1488 for(i2=0;;i2++,i3++){ 1486 if( Parameter[i2]==';'){1489 if(parms[i2]==';'){ 1487 1490 buffer[i3]=0; 1488 1491 break; 1489 1492 } 1490 buffer[i3]= Parameter[i2];1491 if( Parameter[i2]=='\0') break;1492 } 1493 if( Parameter[i2]==';') i2++;1493 buffer[i3]=parms[i2]; 1494 if(parms[i2]=='\0') break; 1495 } 1496 if(parms[i2]==';') i2++; 1494 1497 1495 1498 if(bReturnLine) lstrcat(buffer,"+Ex\"\\r\\n\""); … … 1499 1502 while(1){ 1500 1503 for(i3=0;;i2++,i3++){ 1501 if( Parameter[i2]=='\"'){1502 temporary[i3]= Parameter[i2];1504 if(parms[i2]=='\"'){ 1505 temporary[i3]=parms[i2]; 1503 1506 for(i2++,i3++;;i2++,i3++){ 1504 temporary[i3]= Parameter[i2];1505 if( Parameter[i2]=='\"') break;1507 temporary[i3]=parms[i2]; 1508 if(parms[i2]=='\"') break; 1506 1509 } 1507 1510 continue; 1508 1511 } 1509 if( Parameter[i2]=='('){1510 i5=GetStringInPare(temporary+i3, Parameter+i2);1512 if(parms[i2]=='('){ 1513 i5=GetStringInPare(temporary+i3,parms+i2); 1511 1514 i2+=i5-1; 1512 1515 i3+=i5-1; 1513 1516 continue; 1514 1517 } 1515 if( Parameter[i2]=='['){1516 i5=GetStringInBracket(temporary+i3, Parameter+i2);1518 if(parms[i2]=='['){ 1519 i5=GetStringInBracket(temporary+i3,parms+i2); 1517 1520 i2+=i5-1; 1518 1521 i3+=i5-1; 1519 1522 continue; 1520 1523 } 1521 if( Parameter[i2]==','){1524 if(parms[i2]==','){ 1522 1525 temporary[i3]=0; 1523 1526 i2++; 1524 1527 break; 1525 1528 } 1526 temporary[i3]= Parameter[i2];1527 if( Parameter[i2]=='\0') break;1529 temporary[i3]=parms[i2]; 1530 if(parms[i2]=='\0') break; 1528 1531 } 1529 1532 if(temporary[0]=='\0'){ … … 1554 1557 1555 1558 i4++; 1556 if( Parameter[i2]=='\0') break;1559 if(parms[i2]=='\0') break; 1557 1560 } 1558 1561 sprintf(temp2,"_System_UsingDataType[%d]=-1",i4); … … 1568 1571 Opcode_CallProc(buffer,psi,0,"",0); 1569 1572 } 1570 void Opcode_Print(c har *Parameter,BOOL bWrite){1573 void Opcode_Print(const char *Parameter,BOOL bWrite){ 1571 1574 int i2,i3,i4,sw; 1572 1575 char temporary[VN_SIZE],buffer[VN_SIZE]; 1573 1576 BOOL bFile; 1574 1575 KillStringSpaces(Parameter);1576 1577 1577 1578 if(Parameter[0]=='#'){
Note:
See TracChangeset
for help on using the changeset viewer.