Changeset 116 in dev
- Timestamp:
- May 12, 2007, 4:34:39 PM (18 years ago)
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_Calc.cpp
r75 r116 606 606 607 607 if( calcType.IsObject() && !calcType.Equals( varType ) ){ 608 //キャスト演算子のオーバーロードに対応する 609 CallCastOperatorProc(calcType,bCalcUseHeap,varType); 608 bool isUpCast = false; 609 if( varType.IsObject() ){ 610 if( varType.GetClass().IsEqualsOrSubClass( &calcType.GetClass() ) ){ 611 isUpCast = true; 612 } 613 } 614 if( !isUpCast ){ 615 //キャスト演算子のオーバーロードに対応する 616 CallCastOperatorProc(calcType,bCalcUseHeap,varType); 617 } 610 618 } 611 619 -
BasicCompiler32/Compile_Var.cpp
r106 r116 513 513 CClass::RefType refType; 514 514 GetVarFormatString(temporary,tempArray,lpPtrOffset,tempMember, refType ); 515 } 516 517 int typeDefIndex = Smoothie::Meta::typeDefs.GetIndex( VarName ); 518 if( typeDefIndex != -1 ){ 519 // TypeDef後の型名だったとき 520 lstrcpy( VarName, Smoothie::Meta::typeDefs[typeDefIndex].GetBaseName().c_str() ); 515 521 } 516 522 -
BasicCompiler64/Compile_Calc.cpp
r75 r116 215 215 216 216 if( calcType.IsObject() && !calcType.Equals( varType ) ){ 217 //キャスト演算子のオーバーロードに対応する 218 CallCastOperatorProc(REG_RAX,calcType,bCalcUseHeap,varType); 217 bool isUpCast = false; 218 if( varType.IsObject() ){ 219 if( varType.GetClass().IsEqualsOrSubClass( &calcType.GetClass() ) ){ 220 isUpCast = true; 221 } 222 } 223 if( !isUpCast ){ 224 //キャスト演算子のオーバーロードに対応する 225 CallCastOperatorProc(REG_RAX,calcType,bCalcUseHeap,varType); 226 } 219 227 } 220 228 -
BasicCompiler64/Compile_Var.cpp
r107 r116 537 537 CClass::RefType refType; 538 538 GetVarFormatString(temporary,tempArray,lpPtrOffset,tempMember, refType ); 539 } 540 541 int typeDefIndex = Smoothie::Meta::typeDefs.GetIndex( VarName ); 542 if( typeDefIndex != -1 ){ 543 // TypeDef後の型名だったとき 544 lstrcpy( VarName, Smoothie::Meta::typeDefs[typeDefIndex].GetBaseName().c_str() ); 539 545 } 540 546 -
BasicCompiler_Common/NumOpe_GetType.cpp
r114 r116 614 614 // As演算子の右辺値 615 615 //型名 616 if( (string)term=="Hoge"){ 617 int test=0; 618 } 616 619 if( Type::StringToType( term, resultType ) ){ 617 620 resultType.SetBasicType( resultType.GetBasicType() | FLAG_CAST ); -
BasicCompiler_Common/ParamImpl.cpp
r111 r116 284 284 if( SecondParmNum == -1 ) SecondParmNum = (int)params.size(); 285 285 286 if(ParmsNum>(int)params.size() ){286 if(ParmsNum>(int)params.size() && params.size() != 0){ 287 287 if(params[params.size()-1]->GetBasicType()!=DEF_ELLIPSE){ 288 288 //パラメータが多すぎるとき -
BasicCompiler_Common/Procedure.cpp
r113 r116 518 518 return true; 519 519 }*/ 520 const NamespaceScopes &GlobalProc::GetNamespaceScopes() const 521 { 522 if( HasParentClass() ){ 523 return GetParentClassPtr()->GetNamespaceScopes(); 524 } 525 return namespaceScopes; 526 } 520 527 bool GlobalProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const 521 528 { -
BasicCompiler_Common/Procedure.h
r114 r116 161 161 this->pParentClass = pParentClass; 162 162 } 163 const CClass *GetParentClassPtr() 163 const CClass *GetParentClassPtr() const 164 164 { 165 165 return pParentClass; … … 274 274 bool AddGlobalProc( const NamespaceScopes &namespaceScopes, char *buffer,int nowLine ); 275 275 */ 276 virtual const NamespaceScopes &GetNamespaceScopes() const 277 { 278 return namespaceScopes; 279 } 276 virtual const NamespaceScopes &GetNamespaceScopes() const; 280 277 virtual const NamespaceScopesCollection &GetImportedNamespaces() const 281 278 { -
BasicCompiler_Common/Type.cpp
r114 r116 89 89 // TypeDefされた型 90 90 //////////////////// 91 int i=Smoothie::Meta::typeDefs.GetIndex( typeName .c_str());91 int i=Smoothie::Meta::typeDefs.GetIndex( typeName ); 92 92 if(i!=-1){ 93 93 type = Smoothie::Meta::typeDefs[i].GetBaseType(); … … 96 96 97 97 //クラス 98 const CClass *pobj_c = pobj_DBClass->Find( typeName .c_str());98 const CClass *pobj_c = pobj_DBClass->Find( typeName ); 99 99 if(pobj_c){ 100 100 type.pClass = pobj_c; -
BasicCompiler_Common/VariableOpe.cpp
r114 r116 732 732 } 733 733 734 // TODO: TypeDefされたクラスの静的メンバに未対応 734 int typeDefIndex = Smoothie::Meta::typeDefs.GetIndex( VarName ); 735 if( typeDefIndex != -1 ){ 736 // TypeDef後の型名だったとき 737 lstrcpy( VarName, Smoothie::Meta::typeDefs[typeDefIndex].GetBaseName().c_str() ); 738 } 735 739 736 740 char temp2[VN_SIZE];
Note:
See TracChangeset
for help on using the changeset viewer.