Changeset 468 in dev for trunk/ab5.0/abdev/BasicCompiler64
- Timestamp:
- Mar 27, 2008, 3:04:28 AM (17 years ago)
- Location:
- trunk/ab5.0/abdev/BasicCompiler64
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler64/BasicCompiler.vcproj
r463 r468 82 82 Name="VCLinkerTool" 83 83 AdditionalOptions="/MACHINE:AMD64" 84 AdditionalDependencies="comctl32.lib psapi.lib bufferoverflowu.lib commond.lib imagehlp.lib "84 AdditionalDependencies="comctl32.lib psapi.lib bufferoverflowu.lib commond.lib imagehlp.lib shlwapi.lib" 85 85 OutputFile="../ActiveBasic/BasicCompiler64.exe" 86 86 LinkIncremental="2" … … 195 195 Name="VCLinkerTool" 196 196 AdditionalOptions="/MACHINE:AMD64" 197 AdditionalDependencies="comctl32.lib psapi.lib bufferoverflowu.lib common.lib imagehlp.lib "197 AdditionalDependencies="comctl32.lib psapi.lib bufferoverflowu.lib common.lib imagehlp.lib shlwapi.lib" 198 198 OutputFile="../ActiveBasic/BasicCompiler64.exe" 199 199 LinkIncremental="1" … … 329 329 > 330 330 </File> 331 <File 332 RelativePath="..\BasicCompiler_Common\include\Messenger.h" 333 > 334 </File> 331 335 <Filter 332 336 Name="Language Classes" … … 397 401 </File> 398 402 <File 399 RelativePath="..\BasicCompiler_Common\include\Program.h"400 >401 </File>402 <File403 403 RelativePath="..\BasicCompiler_Common\include\Prototype.h" 404 404 > … … 425 425 </File> 426 426 </Filter> 427 </Filter> 428 <Filter 429 Name="Debugger Classes" 430 > 431 <File 432 RelativePath="..\BasicCompiler_Common\include\Debugger.h" 433 > 434 </File> 435 </Filter> 436 <Filter 437 Name="Application Classes" 438 > 439 <File 440 RelativePath="..\BasicCompiler_Common\include\Program.h" 441 > 442 </File> 427 443 </Filter> 428 444 </Filter> … … 1245 1261 > 1246 1262 </File> 1263 <File 1264 RelativePath="..\BasicCompiler_Common\src\Messenger.cpp" 1265 > 1266 </File> 1247 1267 <Filter 1248 1268 Name="Language Classes" … … 1330 1350 <File 1331 1351 RelativePath="..\BasicCompiler_Common\src\Procedure.cpp" 1332 >1333 </File>1334 <File1335 RelativePath="..\BasicCompiler_Common\src\Program.cpp"1336 1352 > 1337 1353 </File> … … 1362 1378 > 1363 1379 <File 1364 RelativePath="..\BasicCompiler_Common\ include\Program.h"1380 RelativePath="..\BasicCompiler_Common\src\Program.cpp" 1365 1381 > 1366 1382 </File> -
trunk/ab5.0/abdev/BasicCompiler64/CParameter.cpp
r436 r468 282 282 char temp2[255]; 283 283 sprintf(temp2,"%s関数の第%dパラメータ",procName,i2+1); 284 SetError(19,temp2,cp);284 compiler.errorMessenger.Output(19,temp2,cp); 285 285 continue; 286 286 } … … 404 404 if( dummyType.IsObject() ){ 405 405 if( !dummyType.GetClass().IsEqualsOrSubClass( &varType.GetClass() ) ){ 406 SetError(11,Parms[i2],cp);406 compiler.errorMessenger.Output(11,Parms[i2],cp); 407 407 } 408 408 } 409 409 else if( dummyType.IsStruct() ){ 410 410 if( !dummyType.GetClass().IsEquals( &varType.GetClass() ) ){ 411 SetError(11,Parms[i2],cp);411 compiler.errorMessenger.Output(11,Parms[i2],cp); 412 412 } 413 413 } … … 418 418 } 419 419 else{ 420 SetError(11,Parms[i2],cp);420 compiler.errorMessenger.Output(11,Parms[i2],cp); 421 421 } 422 422 } -
trunk/ab5.0/abdev/BasicCompiler64/CodeGenerator.cpp
r370 r468 414 414 } 415 415 416 if(RexByte==-1) SetError(300,NULL,cp);416 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 417 417 418 418 // [8bit rex] 1000 1011 11xx xbbb … … 435 435 } 436 436 437 if(RexByte==-1) SetError(300,NULL,cp);437 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 438 438 439 439 //[8bit rex] 0110 0011 11rr rbbb … … 455 455 } 456 456 457 if(RexByte==-1) SetError(300,NULL,cp);457 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 458 458 459 459 //[8bit rex] 0000 1111 1011 1111 11rr rbbb … … 476 476 } 477 477 478 if(RexByte==-1) SetError(300,NULL,cp);478 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 479 479 480 480 //[8bit rex] 0000 1111 1011 1110 11rr rbbb … … 504 504 } 505 505 506 if(RexByte==-1) SetError(300,NULL,cp);506 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 507 507 508 508 //[8bit rex] 0000 1111 1011 1111 11rr rbbb … … 526 526 } 527 527 528 if(RexByte==-1) SetError(300,NULL,cp);528 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 529 529 530 530 //[8bit rex] 0000 1111 1011 1110 11rr rbbb … … 555 555 } 556 556 557 if(RexByte==-1) SetError(300,NULL,cp);557 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 558 558 559 559 //0110 0110 [8bit rex] 0000 1111 1011 1110 11rr rbbb … … 639 639 if(REG_R8<=reg&®<=REG_R15) RexByte=0x49; 640 640 641 if(RexByte==-1) SetError(300,NULL,cp);641 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 642 642 643 643 if(reg==REG_RAX){ … … 679 679 } 680 680 681 if(RexByte==-1) SetError(300,NULL,cp);681 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 682 682 683 683 //[8bit rex] 0000 0011 11rr rbbb … … 699 699 } 700 700 701 if(RexByte==-1) SetError(300,NULL,cp);701 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 702 702 703 703 //[8bit rex] 0000 0011 11rr rbbb … … 747 747 } 748 748 749 if(RexByte==-1) SetError(300,NULL,cp);749 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 750 750 751 751 //[8bit rex] 0010 1011 11rr rbbb … … 767 767 } 768 768 769 if(RexByte==-1) SetError(300,NULL,cp);769 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 770 770 771 771 //[8bit rex] 0010 1011 11rr rbbb … … 818 818 } 819 819 820 if(RexByte==-1) SetError(300,NULL,cp);820 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 821 821 822 822 … … 844 844 } 845 845 846 if(RexByte==-1) SetError(300,NULL,cp);846 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 847 847 848 848 … … 885 885 if(REG_R8<=reg&®<=REG_R15) RexByte=(char)0x49; 886 886 887 if(RexByte==-1) SetError(300,NULL,cp);887 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 888 888 889 889 //rexプリフィックス … … 903 903 if(REG_R8<=reg&®<=REG_R15) RexByte=(char)0x49; 904 904 905 if(RexByte==-1) SetError(300,NULL,cp);905 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 906 906 907 907 //rexプリフィックス … … 939 939 } 940 940 941 if(RexByte==-1) SetError(300,NULL,cp);941 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 942 942 943 943 … … 973 973 } 974 974 975 if(RexByte==-1) SetError(300,NULL,cp);975 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 976 976 977 977 … … 1007 1007 } 1008 1008 1009 if(RexByte==-1) SetError(300,NULL,cp);1009 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1010 1010 1011 1011 … … 1055 1055 } 1056 1056 1057 if(RexByte==-1) SetError(300,NULL,cp);1057 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1058 1058 1059 1059 … … 1074 1074 if(REG_R8<=reg&®<=REG_R15) (char)RexByte=0x49; 1075 1075 1076 if(RexByte==-1) SetError(300,NULL,cp);1076 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1077 1077 1078 1078 if(reg==REG_RAX){ … … 1101 1101 if(REG_R8<=reg&®<=REG_R15) RexByte=(char)0x41; 1102 1102 1103 if(RexByte==-1) SetError(300,NULL,cp);1103 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1104 1104 1105 1105 if(reg==REG_RAX){ … … 1152 1152 } 1153 1153 1154 if(RexByte==-1) SetError(300,NULL,cp);1154 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1155 1155 1156 1156 … … 1196 1196 } 1197 1197 1198 if(RexByte==-1) SetError(300,NULL,cp);1198 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1199 1199 1200 1200 … … 1228 1228 } 1229 1229 1230 if(RexByte==-1) SetError(300,NULL,cp);1230 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1231 1231 1232 1232 … … 1269 1269 } 1270 1270 1271 if(RexByte==-1) SetError(300,NULL,cp);1271 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1272 1272 1273 1273 //[8bit rex] 1000 0101 11rr rbbb … … 1308 1308 } 1309 1309 1310 if(RexByte==-1) SetError(300,NULL,cp);1310 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1311 1311 1312 1312 … … 1491 1491 } 1492 1492 1493 if(RexByte==-1) SetError(300,NULL,cp);1493 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1494 1494 1495 1495 … … 1532 1532 } 1533 1533 1534 if(RexByte==-1) SetError(300,NULL,cp);1534 if(RexByte==-1) compiler.errorMessenger.Output(300,NULL,cp); 1535 1535 1536 1536 -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Calc.cpp
r463 r468 27 27 } 28 28 else{ 29 SetError(300,NULL,cp);29 compiler.errorMessenger.Output(300,NULL,cp); 30 30 } 31 31 } … … 43 43 //ダブルクォートは不正なのでエラー扱い 44 44 variable[i]=0; 45 SetError(3,variable,cp);45 compiler.errorMessenger.Output(3,variable,cp); 46 46 return; 47 47 } … … 90 90 if(GetVarType(variable,Type(),0)){ 91 91 //変数リストに該当したとき 92 SetError(1,NULL,cp);92 compiler.errorMessenger.Output(1,NULL,cp); 93 93 } 94 94 else{ … … 97 97 { 98 98 //定数リストに該当したとき 99 SetError(1,NULL,cp);99 compiler.errorMessenger.Output(1,NULL,cp); 100 100 } 101 101 else{ 102 102 //変数リスト、定数リストに該当しないとき 103 SetError(3,variable,cp);103 compiler.errorMessenger.Output(3,variable,cp); 104 104 } 105 105 } … … 123 123 124 124 if(Command[i+1]=='\0'){ 125 SetError(1,NULL,cp);125 compiler.errorMessenger.Output(1,NULL,cp); 126 126 return; 127 127 } … … 164 164 165 165 if( lstrcmpi( variable, "This" ) == 0 ){ 166 SetError(133,NULL,cp);166 compiler.errorMessenger.Output(133,NULL,cp); 167 167 return; 168 168 } … … 197 197 if(reg!=REG_RAX&&calcType.IsWhole()|| 198 198 varType.IsNull()||calcType.IsNull()){ 199 SetError(300,NULL,cp);199 compiler.errorMessenger.Output(300,NULL,cp); 200 200 } 201 201 … … 207 207 if( !TermOpeOnlyVariable( variable, varType, VarRelativeVar, true ) ) 208 208 { 209 SetError();209 compiler.errorMessenger.OutputFatalError(); 210 210 return; 211 211 } … … 215 215 216 216 if(varType.GetBasicType()&FLAG_PTR){ 217 SetError(14,variable,cp);217 compiler.errorMessenger.Output(14,variable,cp); 218 218 return; 219 219 } … … 243 243 compiler.GetObjectModule().meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs ); 244 244 if( userProcs.size() != 1 ){ 245 SetError();245 compiler.errorMessenger.OutputFatalError(); 246 246 return; 247 247 } -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Calc_PushVar.cpp
r321 r468 19 19 } 20 20 else if( pRelativeVar->dwKind == VAR_REFGLOBAL ){ 21 SetError(300,NULL,cp);21 compiler.errorMessenger.Output(300,NULL,cp); 22 22 } 23 23 else if(pRelativeVar->dwKind==VAR_LOCAL){ … … 77 77 } 78 78 else if( pRelativeVar->dwKind == VAR_REFGLOBAL ){ 79 SetError(300,NULL,cp);79 compiler.errorMessenger.Output(300,NULL,cp); 80 80 } 81 81 else if(pRelativeVar->dwKind==VAR_LOCAL){ -
trunk/ab5.0/abdev/BasicCompiler64/Compile_CallProc.cpp
r463 r468 143 143 } 144 144 else{ 145 SetError(300,NULL,cp);145 compiler.errorMessenger.Output(300,NULL,cp); 146 146 } 147 147 } … … 171 171 pMethod = pobj_c->GetStaticMethods().GetMethodPtr( pUserProc ); 172 172 if( !pMethod ){ 173 SetError(300,NULL,cp);173 compiler.errorMessenger.Output(300,NULL,cp); 174 174 return false; 175 175 } … … 189 189 //同一クラスオブジェクトの場合はプライベートアクセスを容認する 190 190 if( pMethod->IsNoneAccess() ){ 191 SetError(109,pUserProc->GetName(),cp);191 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 192 192 return false; 193 193 } … … 196 196 if( pMethod->IsPrivate() 197 197 || pMethod->IsNoneAccess() ){ 198 SetError(109,pUserProc->GetName(),cp);198 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 199 199 return false; 200 200 } 201 201 if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() ){ 202 SetError(110,pUserProc->GetName(),cp);202 compiler.errorMessenger.Output(110,pUserProc->GetName(),cp); 203 203 return false; 204 204 } … … 208 208 //クラス内部からの呼び出し(継承によるACCESS_NONのみをエラーとする) 209 209 if( pMethod->IsNoneAccess() ){ 210 SetError(109,pUserProc->GetName(),cp);210 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 211 211 return false; 212 212 } … … 329 329 if( !resultType.IsObject() ) 330 330 { 331 SetError();331 compiler.errorMessenger.OutputFatalError(); 332 332 } 333 333 … … 373 373 if( vtblMasterListIndex != 0 ) 374 374 { 375 SetError();375 compiler.errorMessenger.OutputFatalError(); 376 376 } 377 377 } -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Func.cpp
r463 r468 110 110 || type.IsObjectPtr() && referenceKind == RefPointer ) ) 111 111 { 112 SetError(104,ObjectName,cp);112 compiler.errorMessenger.Output(104,ObjectName,cp); 113 113 } 114 114 … … 149 149 if( vtblMasterListIndex != 0 ) 150 150 { 151 SetError();151 compiler.errorMessenger.OutputFatalError(); 152 152 } 153 153 } … … 248 248 { 249 249 extern int cp; 250 SetError(1,NULL,cp);250 compiler.errorMessenger.Output(1,NULL,cp); 251 251 return; 252 252 } … … 312 312 GetOverloadSubHash( name, subs ); 313 313 if( subs.size() == 0 ){ 314 SetError(27,name,cp);314 compiler.errorMessenger.Output(27,name,cp); 315 315 return; 316 316 } … … 332 332 ) ) 333 333 { 334 SetError(67, name, cp );334 compiler.errorMessenger.Output(67, name, cp ); 335 335 } 336 336 } … … 343 343 ) ) 344 344 { 345 SetError(66, name, cp );345 compiler.errorMessenger.Output(66, name, cp ); 346 346 } 347 347 } … … 349 349 350 350 if(!pUserProc){ 351 SetError(27,name,cp);351 compiler.errorMessenger.Output(27,name,cp); 352 352 return; 353 353 } … … 356 356 pUserProc=GetSubHash(name); 357 357 if(!pUserProc){ 358 SetError(27,name,cp);358 compiler.errorMessenger.Output(27,name,cp); 359 359 return; 360 360 } … … 383 383 Type tempType; 384 384 if( !compiler.StringToType( typeName, tempType ) ){ 385 SetError(3,typeName,cp);385 compiler.errorMessenger.Output(3,typeName,cp); 386 386 return; 387 387 } … … 424 424 compiler.codeGenerator.op_mov_RM( sizeof(_int64), REG_RAX, REG_RAX, 0, MOD_BASE ); 425 425 426 SetError(-120,NULL,cp);426 compiler.errorMessenger.Output(-120,NULL,cp); 427 427 }*/ 428 428 } … … 460 460 } 461 461 else{ 462 SetError(134,NULL,cp );462 compiler.errorMessenger.Output(134,NULL,cp ); 463 463 } 464 464 } … … 545 545 } 546 546 if(!tempType.IsWhole()){ 547 SetError(11,Parameter,cp);547 compiler.errorMessenger.Output(11,Parameter,cp); 548 548 return; 549 549 } -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Object.cpp
r391 r468 22 22 23 23 if(bSomeObjects){ 24 SetError();24 compiler.errorMessenger.OutputFatalError(); 25 25 //mov qword ptr[rsp+offset],rbx ※スタックフレームを利用 26 26 //pobj_sf->push(REG_RBX); … … 62 62 } 63 63 else{ 64 SetError();64 compiler.errorMessenger.OutputFatalError(); 65 65 } 66 66 } … … 103 103 if( pClass->IsAbstract() ){ 104 104 //抽象クラスだったとき 105 SetError(125,pClass->GetName().c_str(),cp);105 compiler.errorMessenger.Output(125,pClass->GetName().c_str(),cp); 106 106 } 107 107 … … 113 113 Type tempType; 114 114 NumOpe(®,objectSizeStr,Type(),tempType); 115 if( !tempType.IsWhole() ) SetError(49,NULL,cp);115 if( !tempType.IsWhole() ) compiler.errorMessenger.Output(49,NULL,cp); 116 116 117 117 //※添え字上限値であることを考慮 … … 264 264 return; 265 265 } 266 if(!( tempType.IsObjectPtr() || tempType.IsVoidPtr() )) SetError(122,NULL,cp);266 if(!( tempType.IsObjectPtr() || tempType.IsVoidPtr() )) compiler.errorMessenger.Output(122,NULL,cp); 267 267 268 268 //sub rax,OBJECT_HEAD_SIZE -
trunk/ab5.0/abdev/BasicCompiler64/Compile_ProcOp.cpp
r463 r468 119 119 } 120 120 else{ 121 SetError();121 compiler.errorMessenger.OutputFatalError(); 122 122 } 123 123 } … … 164 164 { 165 165 if(pGotoLabelSchedule->GetName().size()>0){ 166 SetError(6,pGotoLabelSchedule->GetName(),pGotoLabelSchedule->GetSourceCodePos());166 compiler.errorMessenger.Output(6,pGotoLabelSchedule->GetName(),pGotoLabelSchedule->GetSourceCodePos()); 167 167 } 168 168 else{ 169 169 char temporary[255]; 170 170 sprintf(temporary,"%d",pGotoLabelSchedule->GetLineNum()); 171 SetError(6,temporary,pGotoLabelSchedule->GetSourceCodePos());171 compiler.errorMessenger.Output(6,temporary,pGotoLabelSchedule->GetSourceCodePos()); 172 172 } 173 173 } … … 195 195 } 196 196 else{ 197 SetError();197 compiler.errorMessenger.OutputFatalError(); 198 198 } 199 199 } … … 205 205 206 206 if( pUserProc->GetLocalVars().size() ){ 207 SetError();207 compiler.errorMessenger.OutputFatalError(); 208 208 return; 209 209 } … … 506 506 } 507 507 if(!(temporary[0]=='('&&temporary[lstrlen(temporary)-1]==')')){ 508 SetError(1,NULL,cp);508 compiler.errorMessenger.Output(1,NULL,cp); 509 509 } 510 510 RemoveStringPare(temporary); … … 594 594 //With情報のメモリを解放 595 595 for(i3=0;i3<WithInfo.num;i3++){ 596 SetError(22,"With",WithInfo.pWithCp[i3]);596 compiler.errorMessenger.Output(22,"With",WithInfo.pWithCp[i3]); 597 597 HeapDefaultFree(WithInfo.ppName[i3]); 598 598 } … … 651 651 SetReg_WholeVariable(returnType,&RelativeVar,REG_RAX); 652 652 } 653 else SetError(300,NULL,cp);653 else compiler.errorMessenger.Output(300,NULL,cp); 654 654 } 655 655 -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Set_Var.cpp
r308 r468 90 90 } 91 91 92 SetError(1,NULL,cp);92 compiler.errorMessenger.Output(1,NULL,cp); 93 93 } 94 94 … … 113 113 } 114 114 else if(pRelative->dwKind==VAR_REFGLOBAL){ 115 SetError(300,NULL,cp);115 compiler.errorMessenger.Output(300,NULL,cp); 116 116 } 117 117 else if(pRelative->dwKind==VAR_LOCAL){ … … 178 178 } 179 179 else if(pRelative->dwKind==VAR_REFGLOBAL){ 180 SetError(300,NULL,cp);180 compiler.errorMessenger.Output(300,NULL,cp); 181 181 } 182 182 else if(pRelative->dwKind==VAR_LOCAL){ -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Statement.cpp
r436 r468 15 15 //ダブルクォートは不正なのでエラー扱い 16 16 leftTerm[i]=0; 17 SetError(3,leftTerm,cp);17 compiler.errorMessenger.Output(3,leftTerm,cp); 18 18 return; 19 19 } … … 47 47 (leftTerm[0]==1&&leftTerm[1]==ESC_PSMEM) 48 48 )){ 49 SetError(1,NULL,cp);49 compiler.errorMessenger.Output(1,NULL,cp); 50 50 return; 51 51 } … … 75 75 if(pUserProc){ 76 76 if( !pUserProc->IsMacro() ){ 77 SetError(10,Command,cp);77 compiler.errorMessenger.Output(10,Command,cp); 78 78 } 79 79 … … 90 90 91 91 if( pobj_reg ){ 92 SetError();92 compiler.errorMessenger.OutputFatalError(); 93 93 } 94 94 pobj_reg=new CRegister(REG_RAX); … … 118 118 119 119 // どこにも当てはまらなかったため、失敗 120 SetError(1,NULL,cp);120 compiler.errorMessenger.Output(1,NULL,cp); 121 121 } 122 122 … … 174 174 for(int i=0;;i++){ 175 175 if(Parameter[i]=='\0'){ 176 SetError(21,NULL,cp);176 compiler.errorMessenger.Output(21,NULL,cp); 177 177 return; 178 178 } … … 314 314 compiler.codeGenerator.ContinueAreaBegin(); 315 315 316 if(!Parameter[0]) SetError(10,"While",cp);316 if(!Parameter[0]) compiler.errorMessenger.Output(10,"While",cp); 317 317 318 318 //条件式を実行してフラグをセット … … 353 353 i=GetOneParameter(Parameter,0,temporary); 354 354 if(!Parameter[i]){ 355 SetError(12,"For",cp);355 compiler.errorMessenger.Output(12,"For",cp); 356 356 isError = true; 357 357 goto ErrorStep; … … 367 367 } 368 368 if(temporary[i2]=='\0'){ 369 SetError(12,"For",cp);369 compiler.errorMessenger.Output(12,"For",cp); 370 370 isError = true; 371 371 goto ErrorStep; … … 386 386 if(Parameter[i]){ 387 387 i=GetOneParameter(Parameter,i,StepNum); 388 if(Parameter[i]) SetError(12,"For",cp);388 if(Parameter[i]) compiler.errorMessenger.Output(12,"For",cp); 389 389 } 390 390 else lstrcpy(StepNum,"1"); … … 450 450 if(szNextVariable[0]){ 451 451 if(lstrcmp(szNextVariable,variable)!=0){ 452 SetError(55,szNextVariable,cp);452 compiler.errorMessenger.Output(55,szNextVariable,cp); 453 453 } 454 454 } … … 480 480 GetCustomToken( variable, Parameter, i, ESC_IN, true ); 481 481 if(!Parameter[i]){ 482 SetError(12,"Foreach",cp);482 compiler.errorMessenger.Output(12,"Foreach",cp); 483 483 isError = true; 484 484 goto ErrorStep; … … 537 537 if(szNextVariable[0]){ 538 538 if(lstrcmp(szNextVariable,variable)!=0){ 539 SetError(55,szNextVariable,cp);539 compiler.errorMessenger.Output(55,szNextVariable,cp); 540 540 } 541 541 } … … 561 561 int i,i2,i3; 562 562 563 if(Parameter[0]) SetError(10,"Do",cp);563 if(Parameter[0]) compiler.errorMessenger.Output(10,"Do",cp); 564 564 565 565 //Continueアドレスのバックアップとセット … … 641 641 void OpcodeExitSub(void){ 642 642 if( UserProc::IsGlobalAreaCompiling() ){ 643 SetError(12,"Exit Sub/Function",cp);643 compiler.errorMessenger.Output(12,"Exit Sub/Function",cp); 644 644 return; 645 645 } … … 705 705 if(basbuf[i]=='\0'){ 706 706 selectSchedules.pop_back(); 707 SetError(22,"Select",cp);707 compiler.errorMessenger.Output(22,"Select",cp); 708 708 return; 709 709 } … … 893 893 894 894 if(selectSchedules.back().typeSize==-1){ 895 SetError(30,"Case",cp);895 compiler.errorMessenger.Output(30,"Case",cp); 896 896 return; 897 897 } … … 914 914 915 915 void OpcodeGosub(char *Parameter){ 916 SetError(-1,"Gosub ~ Returnステートメントは64ビットコンパイラで利用することはできません。",cp);916 compiler.errorMessenger.Output(-1,"Gosub ~ Returnステートメントは64ビットコンパイラで利用することはできません。",cp); 917 917 } 918 918 void OpcodeReturn(char *Parameter){ 919 919 if( UserProc::IsGlobalAreaCompiling() ){ 920 SetError(62,NULL,cp);920 compiler.errorMessenger.Output(62,NULL,cp); 921 921 } 922 922 else{ … … 966 966 i=GetOneParameter(Parameter,0,temporary); 967 967 if(!Parameter[i]){ 968 SetError(1,NULL,cp);968 compiler.errorMessenger.Output(1,NULL,cp); 969 969 return; 970 970 } … … 976 976 } 977 977 if(!resultType.IsWhole()){ 978 SetError(11,Parameter,cp);978 compiler.errorMessenger.Output(11,Parameter,cp); 979 979 return; 980 980 } … … 986 986 i=GetOneParameter(Parameter,i,temporary); 987 987 if(Parameter[i]){ 988 SetError(1,NULL,cp);988 compiler.errorMessenger.Output(1,NULL,cp); 989 989 return; 990 990 } -
trunk/ab5.0/abdev/BasicCompiler64/Compile_Var.cpp
r463 r468 32 32 NumOpe( ®, lpPtrOffset, Type(), type ); 33 33 if( !type.IsWhole() ){ 34 SetError(46,NULL,cp);34 compiler.errorMessenger.Output(46,NULL,cp); 35 35 } 36 36 ExtendTypeTo64(type.GetBasicType(),reg); … … 52 52 else{ 53 53 //エラー 54 SetError(1,NULL,cp);54 compiler.errorMessenger.Output(1,NULL,cp); 55 55 return; 56 56 } … … 153 153 if( !type.IsWhole() ) 154 154 { 155 SetError(46,NULL,cp);155 compiler.errorMessenger.Output(46,NULL,cp); 156 156 } 157 157 ExtendTypeTo64( type.GetBasicType(), reg ); … … 211 211 if( !pMember ) 212 212 { 213 if(isErrorEnabled) SetError(103,VarName,cp);213 if(isErrorEnabled) compiler.errorMessenger.Output(103,VarName,cp); 214 214 return false; 215 215 } … … 222 222 //同一クラスオブジェクトの場合はプライベートアクセスを容認する 223 223 if(pMember->IsNoneAccess()){ 224 if(isErrorEnabled) SetError(107,VarName,cp);224 if(isErrorEnabled) compiler.errorMessenger.Output(107,VarName,cp); 225 225 return false; 226 226 } … … 229 229 if((bPrivateAccess==0&&pMember->IsPrivate())|| 230 230 pMember->IsNoneAccess()){ 231 if(isErrorEnabled) SetError(107,VarName,cp);231 if(isErrorEnabled) compiler.errorMessenger.Output(107,VarName,cp); 232 232 return false; 233 233 } 234 234 else if(bPrivateAccess==0&&pMember->IsProtected()){ 235 if(isErrorEnabled) SetError(108,VarName,cp);235 if(isErrorEnabled) compiler.errorMessenger.Output(108,VarName,cp); 236 236 return false; 237 237 } … … 245 245 ){ 246 246 //Const定義の変数に書き込みアクセスをしようとした場合 247 SetError(61,VarName,cp);247 compiler.errorMessenger.Output(61,VarName,cp); 248 248 } 249 249 … … 262 262 else{ 263 263 if(lpPtrOffset[0]){ 264 if(isErrorEnabled) SetError(16,member,cp);264 if(isErrorEnabled) compiler.errorMessenger.Output(16,member,cp); 265 265 return false; 266 266 } … … 275 275 //配列オフセット 276 276 if(!GetArrayOffset(pMember->GetSubscripts(),array,pMember->GetType())){ 277 if(isErrorEnabled) SetError(14,member,cp);277 if(isErrorEnabled) compiler.errorMessenger.Output(14,member,cp); 278 278 return false; 279 279 } … … 288 288 if( resultType.IsObject() || resultType.IsStruct() ){ 289 289 if( refType != RefDot ){ 290 if(isErrorEnabled) SetError(104,member,cp);290 if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp); 291 291 return false; 292 292 } … … 304 304 if( ( resultType.IsObjectPtr() || resultType.IsStructPtr() ) 305 305 && refType != RefDot ){ 306 if(isErrorEnabled) SetError(104,member,cp);306 if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp); 307 307 return false; 308 308 } … … 318 318 if( (resultType.IsObjectPtr() || resultType.IsStructPtr() ) 319 319 && refType != RefPointer ){ 320 if(isErrorEnabled) SetError(104,member,cp);320 if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp); 321 321 return false; 322 322 } … … 332 332 //ppObj[n]->member 333 333 if( refType != RefPointer ){ 334 if(isErrorEnabled) SetError(104,member,cp);334 if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp); 335 335 return false; 336 336 } … … 346 346 } 347 347 else{ 348 if(isErrorEnabled) SetError(104,member,cp);348 if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp); 349 349 return false; 350 350 } … … 427 427 else{ 428 428 if(lpPtrOffset[0]){ 429 SetError(16,variable,cp);429 compiler.errorMessenger.Output(16,variable,cp); 430 430 pRelativeVar->dwKind=NON_VAR; 431 431 return false; … … 507 507 compiler.pCompilingClass->IsCompilingDestructor() == false 508 508 ){ 509 SetError(131, NULL, cp );509 compiler.errorMessenger.Output(131, NULL, cp ); 510 510 } 511 511 … … 596 596 } 597 597 598 if(isErrorEnabled) SetError(3,variable,cp);598 if(isErrorEnabled) compiler.errorMessenger.Output(3,variable,cp); 599 599 pRelativeVar->dwKind=NON_VAR; 600 600 return false; … … 612 612 else{ 613 613 if(lpPtrOffset[0]){ 614 SetError(16,variable,cp);614 compiler.errorMessenger.Output(16,variable,cp); 615 615 pRelativeVar->dwKind=NON_VAR; 616 616 return false; … … 638 638 if( resultType.IsObject() ){ 639 639 //オブジェクト定数 640 SetError(130, VarName, cp );640 compiler.errorMessenger.Output(130, VarName, cp ); 641 641 } 642 642 else{ 643 643 //一般のConst変数 644 SetError(61,VarName,cp);644 compiler.errorMessenger.Output(61,VarName,cp); 645 645 } 646 646 } … … 666 666 if(array[0]){ 667 667 if(!GetArrayOffset(*pSubscripts,array,resultType)){ 668 SetError(14,variable,cp);668 compiler.errorMessenger.Output(14,variable,cp); 669 669 pRelativeVar->dwKind=NON_VAR; 670 670 return false; … … 675 675 //実態オブジェクトのメンバを参照(obj.member) 676 676 if( refType != RefDot ){ 677 SetError(104,VarName,cp);677 compiler.errorMessenger.Output(104,VarName,cp); 678 678 pRelativeVar->dwKind=NON_VAR; 679 679 return false; … … 690 690 //pObj[n].member 691 691 if( refType != RefDot ){ 692 SetError(104,VarName,cp);692 compiler.errorMessenger.Output(104,VarName,cp); 693 693 pRelativeVar->dwKind=NON_VAR; 694 694 return false; … … 700 700 //pObj->member 701 701 if( refType != RefPointer ){ 702 SetError(104,VarName,cp);702 compiler.errorMessenger.Output(104,VarName,cp); 703 703 pRelativeVar->dwKind=NON_VAR; 704 704 return false; … … 717 717 //ppObj[n]->member 718 718 if( refType != RefPointer ){ 719 SetError(104,VarName,cp);719 compiler.errorMessenger.Output(104,VarName,cp); 720 720 pRelativeVar->dwKind=NON_VAR; 721 721 return false; … … 732 732 } 733 733 else{ 734 SetError(104,VarName,cp);734 compiler.errorMessenger.Output(104,VarName,cp); 735 735 pRelativeVar->dwKind=NON_VAR; 736 736 return false; … … 738 738 } 739 739 else{ 740 SetError(102,VarName,cp);740 compiler.errorMessenger.Output(102,VarName,cp); 741 741 pRelativeVar->dwKind=NON_VAR; 742 742 return false; … … 785 785 while(1){ 786 786 if( subscripts[0] < i2 ){ 787 SetError(41,0,cp);787 compiler.errorMessenger.Output(41,0,cp); 788 788 return 0; 789 789 } … … 807 807 BOOST_FOREACH( CMember *pMember, objClass.GetDynamicMembers() ){ 808 808 if(InitBuf[i]=='\0'){ 809 SetError(41,0,cp);809 compiler.errorMessenger.Output(41,0,cp); 810 810 return false; 811 811 } … … 823 823 } 824 824 825 SetError(41,0,cp);825 compiler.errorMessenger.Output(41,0,cp); 826 826 return false; 827 827 } … … 833 833 834 834 if( subscripts.size() > 0 ){ 835 SetError(41,0,cp);835 compiler.errorMessenger.Output(41,0,cp); 836 836 return false; 837 837 } … … 947 947 while(1){ 948 948 if( subscripts[0] < i2 ){ 949 SetError(41,0,cp);949 compiler.errorMessenger.Output(41,0,cp); 950 950 return 0; 951 951 } … … 969 969 BOOST_FOREACH( CMember *pMember, objClass.GetDynamicMembers() ){ 970 970 if(InitBuf[i]=='\0'){ 971 SetError(41,0,cp);971 compiler.errorMessenger.Output(41,0,cp); 972 972 return false; 973 973 } … … 987 987 } 988 988 989 SetError(41,0,cp);989 compiler.errorMessenger.Output(41,0,cp); 990 990 return false; 991 991 } … … 997 997 998 998 if( subscripts.size() > 0 ){ 999 SetError(41,0,cp);999 compiler.errorMessenger.Output(41,0,cp); 1000 1000 return false; 1001 1001 } … … 1113 1113 if( UserProc::CompilingUserProc().GetLocalVars().DuplicateCheck( VarName ) ){ 1114 1114 //2重定義のエラー 1115 SetError(15,VarName,cp);1115 compiler.errorMessenger.Output(15,VarName,cp); 1116 1116 return; 1117 1117 } … … 1227 1227 else{ 1228 1228 if( subscripts.size() > 1 ){ 1229 SetError(300,NULL,cp);1229 compiler.errorMessenger.Output(300,NULL,cp); 1230 1230 } 1231 1231 sprintf( objectSize, "%d", subscripts[0] ); … … 1237 1237 GetVarOffset( true, false, VarName, &RelativeVar, tempType ); 1238 1238 if( RelativeVar.dwKind == VAR_DIRECTMEM ){ 1239 SetError();1239 compiler.errorMessenger.OutputFatalError(); 1240 1240 } 1241 1241 SetVariableFromRax( Type( DEF_OBJECT, *compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr() ), DEF_OBJECT, &RelativeVar ); … … 1243 1243 } 1244 1244 void SetVarPtrToReg(int reg,RELATIVE_VAR *pRelativeVar){ 1245 if(!IsGeneralReg(reg)) SetError(300,NULL,cp);1245 if(!IsGeneralReg(reg)) compiler.errorMessenger.Output(300,NULL,cp); 1246 1246 1247 1247 if(pRelativeVar->dwKind==VAR_GLOBAL){ … … 1319 1319 const UserProc *pUserProc_AddGlobalRootPtr = GetClassMethod( "_System_CGarbageCollection", "AddGlobalRootPtr" ); 1320 1320 if( !pUserProc_AddGlobalRootPtr ){ 1321 SetError(3, "_System_CGarbageCollection.AddGlobalRootPtr", -1 );1321 compiler.errorMessenger.Output(3, "_System_CGarbageCollection.AddGlobalRootPtr", -1 ); 1322 1322 return false; 1323 1323 } -
trunk/ab5.0/abdev/BasicCompiler64/MakePeHdr.cpp
r460 r468 94 94 extern int obp_AllocSize; 95 95 extern char *basbuf; 96 extern char OutputFileName[MAX_PATH];97 96 int i,i2,i3,i4,i5; 98 97 char temporary[MAX_PATH],*temp2; … … 325 324 // 名前空間が初期化されているかをチェック 326 325 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ 327 SetError();326 compiler.errorMessenger.OutputFatalError(); 328 327 } 329 328 … … 409 408 //With情報のメモリを解放 410 409 for(i=0;i<WithInfo.num;i++){ 411 SetError(22,"With",WithInfo.pWithCp[i]);410 compiler.errorMessenger.Output(22,"With",WithInfo.pWithCp[i]); 412 411 HeapDefaultFree(WithInfo.ppName[i]); 413 412 } … … 417 416 // 名前空間が正しく閉じられているかをチェック 418 417 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ 419 SetError(63,NULL,-1);418 compiler.errorMessenger.Output(63,NULL,-1); 420 419 } 421 420 … … 467 466 468 467 // 格納先ディレクトリを作る 469 Jenga::Common::Path path( OutputFileName);468 Jenga::Common::Path path( program.GetOutputFilePath() ); 470 469 Jenga::Common::Directory dir( path.GetDriveName() + path.GetDirName(), true ); 471 470 472 471 // 書き込む 473 if( !compiler.GetObjectModule().Write( OutputFileName) )472 if( !compiler.GetObjectModule().Write( program.GetOutputFilePath() ) ) 474 473 { 475 474 MessageBox(0,"XML書き込みに失敗","test",0); … … 478 477 } 479 478 480 extern BOOL bError; 481 if( !bError ) 479 if( !compiler.errorMessenger.HasError() ) 482 480 { 483 CompileMessage( "リンク中..." );481 compiler.messenger.Output( "リンク中..." ); 484 482 } 485 483 … … 522 520 hLib=LoadLibrary( pDllProc->GetDllFileName().c_str() ); 523 521 if(!hLib){ 524 extern char OutputFileName[MAX_PATH];525 522 char temp2[MAX_PATH],temp3[MAX_PATH]; 526 _splitpath( OutputFileName,temp2,temp3,NULL,NULL);523 _splitpath(program.GetOutputFilePath().c_str(),temp2,temp3,NULL,NULL); 527 524 lstrcat(temp2,temp3); 528 525 lstrcpy(temp3,pDllProc->GetDllFileName().c_str()); … … 531 528 532 529 if(!hLib){ 533 SetError(-106,pDllProc->GetDllFileName().c_str(),pDllProc->GetCodePos());530 compiler.errorMessenger.Output(-106,pDllProc->GetDllFileName().c_str(),pDllProc->GetCodePos()); 534 531 } 535 532 } … … 538 535 if(!GetProcAddress(hLib,pDllProc->GetAlias().c_str())){ 539 536 FreeLibrary(hLib); 540 SetError(-107,pDllProc->GetAlias(),pDllProc->GetCodePos());537 compiler.errorMessenger.Output(-107,pDllProc->GetAlias(),pDllProc->GetCodePos()); 541 538 } 542 539 FreeLibrary(hLib); … … 574 571 575 572 if(bUse_ExportSection){ 576 _splitpath( OutputFileName,NULL,NULL,lpExportNames,temporary);573 _splitpath(program.GetOutputFilePath().c_str(),NULL,NULL,lpExportNames,temporary); 577 574 lstrcat(lpExportNames,temporary); 578 575 ExportNamesLength=lstrlen(lpExportNames)+1; … … 700 697 701 698 if( pDllProc->GetDllFileName().size() > 16 ){ 702 SetError(7,NULL,cp);699 compiler.errorMessenger.Output(7,NULL,cp); 703 700 break; 704 701 } … … 832 829 CDebugSection *pobj_DebugSection; 833 830 pobj_DebugSection=new CDebugSection(); 834 extern BOOL bError; 835 if( compiler.IsDebug() && bError == 0 ) 831 if( compiler.IsDebug() && !compiler.errorMessenger.HasError() ) 836 832 { 837 CompileMessage( "デバッグ情報を生成しています。" );833 compiler.messenger.Output( "デバッグ情報を生成しています。" ); 838 834 839 835 pobj_DebugSection->make(); 840 836 841 CompileMessage( "デバッグ情報の生成が完了しました。" );837 compiler.messenger.Output( "デバッグ情報の生成が完了しました。" ); 842 838 } 843 839 … … 1121 1117 1122 1118 1123 extern BOOL bError; 1124 if(bError) goto EndWriteOpcode; 1119 if( compiler.errorMessenger.HasError() ) 1120 { 1121 goto EndWriteOpcode; 1122 } 1125 1123 1126 1124 … … 1411 1409 1412 1410 1413 hFile=CreateFile( OutputFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);1411 hFile=CreateFile(program.GetOutputFilePath().c_str(),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); 1414 1412 if(hFile==INVALID_HANDLE_VALUE){ 1415 SetError(53,OutputFileName,-1);1413 compiler.errorMessenger.Output(53,program.GetOutputFilePath().c_str(),-1); 1416 1414 goto EndWriteOpcode; 1417 1415 } -
trunk/ab5.0/abdev/BasicCompiler64/NumOpe.cpp
r463 r468 177 177 // オブジェクトメンバのポインタをraxにコピー 178 178 if( !VarToReg( tempRelativeVar, baseType, resultType ) ){ 179 SetError(11,termFull,cp);179 compiler.errorMessenger.Output(11,termFull,cp); 180 180 } 181 181 } … … 220 220 if( !leftType.IsStruct() ) 221 221 { 222 SetError();222 compiler.errorMessenger.OutputFatalError(); 223 223 } 224 224 … … 344 344 { 345 345 // 関数ポインタ 346 SetError();346 compiler.errorMessenger.OutputFatalError(); 347 347 348 348 /////////////////////////////////////////////////////////////////// … … 354 354 } 355 355 356 SetError();356 compiler.errorMessenger.OutputFatalError(); 357 357 358 358 return false; … … 412 412 if( isProcedureCallOnly ) 413 413 { 414 SetError(1,NULL,cp);414 compiler.errorMessenger.Output(1,NULL,cp); 415 415 } 416 416 return false; … … 444 444 if( compiler.pCompilingClass == NULL ) 445 445 { 446 SetError(142,NULL,cp);446 compiler.errorMessenger.Output(142,NULL,cp); 447 447 return false; 448 448 } … … 475 475 //閉じカッコ")"に続く文字がNULLでないとき 476 476 if(termFull[i2+1+i4+1]!='\0'){ 477 SetError(42,NULL,cp);477 compiler.errorMessenger.Output(42,NULL,cp); 478 478 } 479 479 … … 537 537 538 538 //閉じカッコ")"に続く文字がNULLでないときはエラーにする 539 if(termFull[i2+1+i4+1]!='\0') SetError(42,NULL,cp);539 if(termFull[i2+1+i4+1]!='\0') compiler.errorMessenger.Output(42,NULL,cp); 540 540 541 541 //マクロ関数の場合 … … 658 658 if( isProcedureCallOnly ) 659 659 { 660 SetError(3, termLeft, cp );660 compiler.errorMessenger.Output(3, termLeft, cp ); 661 661 } 662 662 … … 687 687 // 変数の場合はeaxに変数ポインタを格納する 688 688 if( !VarToReg( relativeVar, baseType, resultType ) ){ 689 SetError(11,term,cp);689 compiler.errorMessenger.Output(11,term,cp); 690 690 } 691 691 } … … 715 715 if( pobj_reg ) 716 716 { 717 SetError();717 compiler.errorMessenger.OutputFatalError(); 718 718 } 719 719 … … 726 726 if( !isVariable ) 727 727 { 728 SetError();728 compiler.errorMessenger.OutputFatalError(); 729 729 } 730 730 … … 753 753 754 754 if(expression[0]=='\0'){ 755 SetError(1,NULL,cp);755 compiler.errorMessenger.Output(1,NULL,cp); 756 756 return false; 757 757 } … … 836 836 837 837 if( pobj_BlockReg->check(REG_RAX) ){ 838 SetError();838 compiler.errorMessenger.OutputFatalError(); 839 839 } 840 840 … … 937 937 else GetCalcName(idCalc,temp2); 938 938 sprintf(temporary,"Operator %s",temp2); 939 SetError(27,temporary,cp);939 compiler.errorMessenger.Output(27,temporary,cp); 940 940 goto error; 941 941 } … … 971 971 } 972 972 else{ 973 SetError(3, term, cp );973 compiler.errorMessenger.Output(3, term, cp ); 974 974 goto error; 975 975 } … … 997 997 // 拡張版リテラル文字列(エスケープシーケンス可能) 998 998 if(!RemoveStringQuotes(term+2)){ 999 SetError(43,NULL,cp);999 compiler.errorMessenger.Output(43,NULL,cp); 1000 1000 goto error; 1001 1001 } … … 1007 1007 // 通常文字列 1008 1008 if(!RemoveStringQuotes(term)){ 1009 SetError(43,NULL,cp);1009 compiler.errorMessenger.Output(43,NULL,cp); 1010 1010 goto error; 1011 1011 } … … 1066 1066 } 1067 1067 } 1068 SetError(38,term,cp);1068 compiler.errorMessenger.Output(38,term,cp); 1069 1069 1070 1070 goto error; … … 1080 1080 if( resultType.GetBasicType() & FLAG_CAST ){ 1081 1081 // 型名のみ 1082 SetError();1082 compiler.errorMessenger.OutputFatalError(); 1083 1083 } 1084 1084 else{ … … 1190 1190 } 1191 1191 else{ 1192 SetError(1,NULL,0);1192 compiler.errorMessenger.Output(1,NULL,0); 1193 1193 goto error; 1194 1194 } … … 1198 1198 //該当する識別子が見当たらないときはエラー扱いにする 1199 1199 bError=1; 1200 SetError(3,term,cp);1200 compiler.errorMessenger.Output(3,term,cp); 1201 1201 type_stack[sp]=DEF_DOUBLE; 1202 1202 } … … 1235 1235 1236 1236 if(XmmReg==REG_XMM4){ 1237 SetError(); // TODO: 未実装1237 compiler.errorMessenger.OutputFatalError(); // TODO: 未実装 1238 1238 //push term 1239 1239 //compiler.codeGenerator.op_push_value(i32data); … … 1333 1333 if( PTR_LEVEL( type_stack[sp-1] ) <= 0 ){ 1334 1334 //ポインタ型ではないとき 1335 SetError( 3, NULL, cp );1335 compiler.errorMessenger.Output( 3, NULL, cp ); 1336 1336 goto error; 1337 1337 } … … 1342 1342 1343 1343 default: 1344 SetError(300,NULL,cp);1344 compiler.errorMessenger.Output(300,NULL,cp); 1345 1345 goto error; 1346 1346 } … … 1350 1350 1351 1351 if(sp!=1){ 1352 SetError(1,NULL,cp);1352 compiler.errorMessenger.Output(1,NULL,cp); 1353 1353 goto error; 1354 1354 } 1355 1355 1356 1356 if(bLiteralCalculation){ 1357 SetError();1357 compiler.errorMessenger.OutputFatalError(); 1358 1358 } 1359 1359 else{ -
trunk/ab5.0/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp
r308 r468 178 178 if(IsRealNumberType(type[sp-2])||IsRealNumberType(type[sp-1])){ 179 179 //実数演算は行えないため、エラー扱い 180 SetError(45,"mod",cp);180 compiler.errorMessenger.Output(45,"mod",cp); 181 181 return 0; 182 182 } … … 357 357 if(IsRealNumberType(type[sp-2])||IsRealNumberType(type[sp-1])){ 358 358 //実数演算は行えないため、エラー扱い 359 SetError(45,"mod",cp);359 compiler.errorMessenger.Output(45,"mod",cp); 360 360 return 0; 361 361 } … … 625 625 if(IsRealNumberType(type[sp-2])||IsRealNumberType(type[sp-1])){ 626 626 //いずれかの項が実数のとき 627 SetError(45,"<<",cp);627 compiler.errorMessenger.Output(45,"<<",cp); 628 628 return 0; 629 629 } -
trunk/ab5.0/abdev/BasicCompiler64/NumOpe_Logical.cpp
r433 r468 15 15 if(IsRealNumberType(type[sp-2])||IsRealNumberType(type[sp-1])){ 16 16 //いずれかの項が実数のとき 17 SetError(45,"xor",cp);17 compiler.errorMessenger.Output(45,"xor",cp); 18 18 return 0; 19 19 } … … 94 94 if(IsRealNumberType(type[sp-1])){ 95 95 //実数のとき 96 SetError(45,"Not",cp);96 compiler.errorMessenger.Output(45,"Not",cp); 97 97 return 0; 98 98 } -
trunk/ab5.0/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp
r463 r468 264 264 } 265 265 else{ 266 SetError(300,NULL,cp);266 compiler.errorMessenger.Output(300,NULL,cp); 267 267 } 268 268 … … 499 499 int castBasicType = type[sp-1]; 500 500 if((castBasicType&FLAG_CAST)==0){ 501 SetError(47,NULL,cp);501 compiler.errorMessenger.Output(47,NULL,cp); 502 502 return 0; 503 503 } -
trunk/ab5.0/abdev/BasicCompiler64/OperatorProc.cpp
r448 r468 7 7 8 8 void FreeTempObject(int reg,const CClass *pobj_c){ 9 if(!IsSafeReg(reg)) SetError(300,NULL,cp);9 if(!IsSafeReg(reg)) compiler.errorMessenger.Output(300,NULL,cp); 10 10 11 11 //////////////////////////////////////////////// … … 293 293 if(bCalcUseHeap){ 294 294 //未解放のインスタンスが存在する旨を示す警告 295 SetError(-105,NULL,cp);295 compiler.errorMessenger.Output(-105,NULL,cp); 296 296 } 297 297 … … 325 325 326 326 //エラーを発行 327 SetError(-1,"キャスト演算子がオーバーロードされていません。",cp);327 compiler.errorMessenger.Output(-1,"キャスト演算子がオーバーロードされていません。",cp); 328 328 } 329 329 -
trunk/ab5.0/abdev/BasicCompiler64/Register.cpp
r206 r468 20 20 void CBlockReg::lock(int reg){ 21 21 if(check(reg)){ 22 SetError(300,NULL,cp);22 compiler.errorMessenger.Output(300,NULL,cp); 23 23 } 24 24 array_BlockReg[num++]=reg; … … 136 136 137 137 //エラーチェック 138 if(pobj_BlockReg->check(AnswerReg)) SetError(300,NULL,cp);138 if(pobj_BlockReg->check(AnswerReg)) compiler.errorMessenger.Output(300,NULL,cp); 139 139 } 140 140 … … 186 186 void CRegister::bug_check(){ 187 187 if(init_sp_reg!=sp_UseReg|| 188 init_sp_xmm_reg!=sp_XmmReg) SetError(300,NULL,cp);188 init_sp_xmm_reg!=sp_XmmReg) compiler.errorMessenger.Output(300,NULL,cp); 189 189 } 190 190 int CRegister::GetNextReg(){ -
trunk/ab5.0/abdev/BasicCompiler64/stack_frame.cpp
r308 r468 118 118 void StackFrame::error_check(){ 119 119 if(now_sp){ 120 SetError(300,NULL,cp);120 compiler.errorMessenger.Output(300,NULL,cp); 121 121 } 122 122 } -
trunk/ab5.0/abdev/BasicCompiler64/stdafx.h
r463 r468 5 5 #include <vector> 6 6 #include <fstream> 7 #include <iostream> 7 8 8 9 #include <windows.h> … … 14 15 #include <limits.h> 15 16 #include <shlobj.h> 16 #include < iostream>17 #include <process.h> 17 18 18 19 //boost libraries … … 22 23 #include <jenga/include/common/File.h> 23 24 #include <jenga/include/common/CmdLine.h> 25 #include <jenga/include/common/Path.h> 24 26 25 27 #include "../BasicCompiler_Common/common.h" … … 29 31 #include <Program.h> 30 32 #include <Compiler.h> 33 #include <Debugger.h>
Note:
See TracChangeset
for help on using the changeset viewer.