Changeset 45 in dev for BasicCompiler_Common
- Timestamp:
- Feb 2, 2007, 2:58:14 AM (18 years ago)
- Location:
- BasicCompiler_Common
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/common.h
r43 r45 578 578 void SetError(int ErrorNum,const char *KeyWord,int pos); 579 579 void CompileMessage(char *buffer); 580 voidCheckDifferentType(int VarType,LONG_PTR lpVarIndex,int CalcType,LONG_PTR lpCalcIndex,char *pszFuncName,int ParmNum);580 bool CheckDifferentType(int VarType,LONG_PTR lpVarIndex,int CalcType,LONG_PTR lpCalcIndex,char *pszFuncName,int ParmNum); 581 581 582 582 //Compile.cpp -
BasicCompiler_Common/error.cpp
r40 r45 393 393 if(iWarning==1) SetError(-101,temporary,cp); 394 394 else if(iWarning==2) SetError(-102,temporary,cp); 395 else if(iWarning==3) SetError(50,temporary,cp); 395 396 } 396 397 397 voidCheckDifferentType(int VarType,LONG_PTR lpVarIndex,int CalcType,LONG_PTR lpCalcIndex,char *pszFuncName,int ParmNum){398 bool CheckDifferentType(int VarType,LONG_PTR lpVarIndex,int CalcType,LONG_PTR lpCalcIndex,char *pszFuncName,int ParmNum){ 398 399 399 400 if(VarType==DEF_OBJECT||CalcType==DEF_OBJECT){ 400 401 //オブジェクトインスタンスの場合 401 402 if(!(VarType==CalcType&&lpVarIndex==lpCalcIndex)){ 402 DifferentTypeError(VarType,lpVarIndex,CalcType,lpCalcIndex, 2,pszFuncName,ParmNum);403 return ;403 DifferentTypeError(VarType,lpVarIndex,CalcType,lpCalcIndex,3,pszFuncName,ParmNum); 404 return false; 404 405 } 405 406 } … … 407 408 //#strictが指定されていないときは型チェックを行わないようにする 408 409 extern BOOL bStrict; 409 if(bStrict==0) return ;410 if(bStrict==0) return true; 410 411 411 412 if(CalcType&FLAG_PTR){ … … 421 422 if(IsPtrType(VarType)&&lpCalcIndex==LITERAL_NULL){ 422 423 //リテラルNULL値の場合 423 return ;424 return true; 424 425 } 425 426 426 427 if(VarType==DEF_PTR_VOID){ 427 428 //左辺がVoidPtr型の場合は、ポインタ型すべてを受け入れる 428 if(IsPtrType(CalcType)) return ;429 if(IsPtrType(CalcType)) return true; 429 430 } 430 431 431 432 if(CalcType==DEF_PTR_VOID){ 432 433 //右辺がVoidPtr型の場合は、ポインタ型すべてを受け入れる 433 if(IsPtrType(VarType)) return ;434 if(IsPtrType(VarType)) return true; 434 435 } 435 436 436 437 if(VarType!=CalcType){ 437 438 DifferentTypeError(VarType,lpVarIndex,CalcType,lpCalcIndex,2,pszFuncName,ParmNum); 438 return ;439 return true; 439 440 } 440 441 … … 449 450 if(lpVarIndex==(LONG_PTR)pobj_tempClass){ 450 451 //継承先が等しいとき 451 return ;452 return true; 452 453 } 453 454 } 454 455 DifferentTypeError(VarType,lpVarIndex,CalcType,lpCalcIndex,2,pszFuncName,ParmNum); 455 return ;456 return true; 456 457 } 457 458 } … … 507 508 } 508 509 } 510 511 return true; 509 512 }
Note:
See TracChangeset
for help on using the changeset viewer.