- Timestamp:
- Nov 26, 2007, 9:44:17 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Statement.cpp
r372 r373 597 597 Type resultType; 598 598 int i; 599 char temporary[VN_SIZE], variable[VN_SIZE],collectionVar[VN_SIZE];599 char temporary[VN_SIZE],collectionVar[VN_SIZE]; 600 600 bool isError = false; 601 601 602 //レキシカルスコープをレベルアップ 603 compiler.codeGenerator.lexicalScopes.Start( compiler.codeGenerator.GetNativeCodeSize(), LexicalScope::SCOPE_TYPE_FOR ); 604 602 605 //第1パラメータを取得 603 i=GetOneParameter(Parameter,0,temporary); 606 char variable[VN_SIZE]; 607 i=GetOneParameter(Parameter,0,variable); 604 608 if(!Parameter[i]){ 605 609 SetError(12,"Foreach",cp); … … 608 612 } 609 613 610 lstrcpy( variable, temporary );611 612 614 //第2パラメータを取得(in~) 613 615 i=GetOneParameter(Parameter,i,collectionVar); 616 617 if( !GetVarType( variable, resultType, false ) ) 618 { 619 Type collectionType; 620 if( !NumOpe_GetType( Parameter, Type(), collectionType ) ) 621 { 622 isError = true; 623 goto ErrorStep; 624 } 625 626 // 未定義の場合は自動的に定義する 627 sprintf(temporary,"%s%c%c%s", variable, 1, ESC_AS, collectionType.GetActualGenericType(0).GetClass().GetFullName() ); 628 OpcodeDim(temporary,DIMFLAG_INITDEBUGVAR); 629 } 614 630 615 631 // Resetメソッドを呼び出す … … 634 650 //je ... 635 651 const PertialSchedule *pTempPertialSchedule = compiler.codeGenerator.op_je( 0, sizeof(long), true ); 636 637 //レキシカルスコープをレベルアップ638 compiler.codeGenerator.lexicalScopes.Start( compiler.codeGenerator.GetNativeCodeSize(), LexicalScope::SCOPE_TYPE_FOR );639 652 640 653 // Currentプロパティから現在の値を取得
Note:
See TracChangeset
for help on using the changeset viewer.