Changeset 331 in dev for trunk/abdev/BasicCompiler_Common
- Timestamp:
- Sep 27, 2007, 1:47:46 AM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/BasicCompiler.h
r266 r331 61 61 62 62 63 //関数ポインタのベース タイプ インデックス(左辺の関数ポインタのパラメータを参考に、オーバーロードを解決)64 LONG_PTR ProcPtr_BaseIndex;65 66 67 63 int cp; 68 64 -
trunk/abdev/BasicCompiler_Common/NumOpe_GetType.cpp
r301 r331 301 301 } 302 302 303 bool GetTermType( const char *term, Type &resultType, bool &isLiteral, bool *pIsClassName )303 bool GetTermType( const char *term, const Type &baseType, Type &resultType, bool &isLiteral, bool *pIsClassName ) 304 304 { 305 305 char parameter[VN_SIZE]; … … 330 330 bool isClassName = false; 331 331 Type leftType; 332 if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){332 if( GetTermType( termLeft, Type(), leftType, isLiteral, &isClassName ) ){ 333 333 if( isClassName == false && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( leftType ) ){ 334 334 // 左側のオブジェクト部分がBlittable型のとき … … 340 340 temporary ); 341 341 342 if( !GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){342 if( !GetTermType( termLeft, Type(), leftType, isLiteral, &isClassName ) ){ 343 343 goto globalArea; 344 344 } … … 446 446 //////////////// 447 447 448 if( !CallProc(idProc,pProc,procName,parameter, resultType, false ) ){448 if( !CallProc(idProc,pProc,procName,parameter, baseType, resultType, false ) ){ 449 449 return false; 450 450 } … … 716 716 717 717 bool isLiteral = true; 718 if( GetTermType( term, resultType, isLiteral ) ){718 if( GetTermType( term, baseType, resultType, isLiteral ) ){ 719 719 type_stack[sp] = resultType.GetBasicType(); 720 720 index_stack[sp] = resultType.GetIndex(); -
trunk/abdev/BasicCompiler_Common/Object.cpp
r276 r331 60 60 temporary, 61 61 Parameter, 62 Type(), // baseTypeはなし 62 63 dummyType ); 63 64 … … 72 73 temporary, 73 74 Parameter, 75 Type(), // baseTypeはなし 74 76 dummyType ); 75 77 } -
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r327 r331 115 115 } 116 116 117 bool CallProc( int kind, const void *pProc, const char *fullCallName, const char *lpszParms, Type &resultType, bool isCallOn ){118 117 bool CallProc( int kind, const void *pProc, const char *fullCallName, const char *lpszParms, const Type &baseType, Type &resultType, bool isCallOn ) 118 { 119 119 //GetSubHash内でエラー提示が行われた場合 120 120 if(pProc==(Procedure *)-1){ … … 178 178 int FuncId = (int)(_int64)pProc; 179 179 180 if( !Opcode_CallFunc( lpszParms, FuncId, resultType, isCallOn ) ){180 if( !Opcode_CallFunc( lpszParms, FuncId, baseType, resultType, isCallOn ) ){ 181 181 return false; 182 182 } … … 212 212 } 213 213 214 return CallProc( PROC_DEFAULT, pInfo, tempName, lpszParms, resultType, isCallOn );214 return CallProc( PROC_DEFAULT, pInfo, tempName, lpszParms, baseType, resultType, isCallOn ); 215 215 } 216 216 else{ -
trunk/abdev/BasicCompiler_Common/common.h
r322 r331 347 347 int AutoBigCast(int BaseType,int CalcType); 348 348 BOOL CheckCalcType(int idCalc,int *type,int sp); 349 bool GetTermType( const char *term, Type &resultType, bool &isLiteral, bool *pIsClassName = NULL );349 bool GetTermType( const char *term, const Type &baseType, Type &resultType, bool &isLiteral, bool *pIsClassName = NULL ); 350 350 bool NumOpe_GetType( const char *expression, const Type &baseType, Type &resultType, bool *pIsLiteralCalculation = NULL ); 351 351 … … 354 354 int GetProc(char *name,void **ppInfo); 355 355 void SplitObjectName(const char *name,char *ObjectName, ReferenceKind &referenceFind ); 356 bool CallProc( int kind, const void *pProc, const char *fullCallName, const char *lpszParms, Type &resultType, bool isCallOn = true );356 bool CallProc( int kind, const void *pProc, const char *fullCallName, const char *lpszParms, const Type &baseType, Type &resultType, bool isCallOn = true ); 357 357 bool CallPropertyMethod( const char *variable, const char *rightSide, Type &resultType); 358 358 bool GetReturnTypeOfPropertyMethod( const char *variable, const char *rightSide, Type &resultType );
Note:
See TracChangeset
for help on using the changeset viewer.