Changeset 117 in dev


Ignore:
Timestamp:
May 12, 2007, 5:31:53 PM (18 years ago)
Author:
dai_9181
Message:

String/ObjectをSystem名前空間に依存しない特殊型として扱うようにした

Files:
11 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Compile_Func.cpp

    r114 r117  
    176176        tempParm=temp2;
    177177
    178         extern const CClass *pobj_StringClass;
    179         type.SetType( DEF_OBJECT, pobj_StringClass );
     178        type.SetType( DEF_OBJECT, pobj_DBClass->GetStringClassPtr() );
    180179    }
    181180
  • BasicCompiler32/NumOpe.cpp

    r114 r117  
    7777    SetStringQuotes( parameter );
    7878
    79     extern const CClass *pobj_StringClass;
    80     Operator_New( *pobj_StringClass, "", parameter, Type( DEF_OBJECT, *pobj_StringClass ) );
     79    Operator_New( *pobj_DBClass->GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *pobj_DBClass->GetStringClassPtr() ) );
    8180
    8281    free( parameter );
     
    719718                        NewStringObject(term);
    720719
    721                         extern const CClass *pobj_StringClass;
    722720                        type_stack[sp]=DEF_OBJECT;
    723                         index_stack[sp]=(LONG_PTR)pobj_StringClass;
     721                        index_stack[sp]=(LONG_PTR)pobj_DBClass->GetStringClassPtr();
    724722                        bLiteralCalculation=0;
    725723
     
    819817                        }
    820818                        else{
    821                             index_stack[sp] = (LONG_PTR)pobj_DBClass->GetObjectClass();
     819                            index_stack[sp] = (LONG_PTR)pobj_DBClass->GetObjectClassPtr();
    822820                        }
    823821
  • BasicCompiler64/Compile_Func.cpp

    r115 r117  
    3030        tempParm=temp2;
    3131
    32         extern const CClass *pobj_StringClass;
    33         type.SetType( DEF_OBJECT, pobj_StringClass );
     32        type.SetType( DEF_OBJECT, pobj_DBClass->GetStringClassPtr() );
    3433    }
    3534
  • BasicCompiler64/NumOpe.cpp

    r115 r117  
    1818        SetStringQuotes( parameter );
    1919
    20         extern const CClass *pobj_StringClass;
    21         Operator_New( *pobj_StringClass, "", parameter, Type( DEF_OBJECT, *pobj_StringClass ) );
     20        Operator_New( *pobj_DBClass->GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *pobj_DBClass->GetStringClassPtr() ) );
    2221
    2322        free( parameter );
     
    731730                        NewStringObject(UseReg,term);
    732731
    733                         extern const CClass *pobj_StringClass;
    734732                        type_stack[sp]=DEF_OBJECT;
    735                         index_stack[sp]=(LONG_PTR)pobj_StringClass;
     733                        index_stack[sp]=(LONG_PTR)pobj_DBClass->GetStringClassPtr();
    736734                        bLiteralCalculation=0;
    737735
     
    846844                        }
    847845                        else{
    848                             index_stack[sp] = (LONG_PTR)pobj_DBClass->GetObjectClass();
     846                            index_stack[sp] = (LONG_PTR)pobj_DBClass->GetObjectClassPtr();
    849847                        }
    850848
  • BasicCompiler_Common/Class.cpp

    r114 r117  
    1010
    1111const CClass *pobj_CompilingClass;
    12 const CClass *pobj_StringClass;
    1312
    1413CMember *pCompilingMethod;
     
    819818    key=hash(name.c_str());
    820819
     820    if( namespaceScopes.size() == 0 && name == "Object" ){
     821        return GetObjectClassPtr();
     822    }
     823    else if( namespaceScopes.size() == 0 && name == "String" ){
     824        return GetStringClassPtr();
     825    }
     826
    821827    if(pobj_ClassHash[key]){
    822828        CClass *pobj_c;
     
    864870    if(lstrcmp(name,"String")==0){
    865871        //Stringクラス
    866         pobj_StringClass=pobj_c;
     872        pStringClass=pobj_c;
    867873    }
    868874    if( lstrcmp( name, "Object" ) == 0 ){
     
    17701776
    17711777
    1772 CClass *CDBClass::GetStringClass() const
     1778CClass *CDBClass::GetStringClassPtr() const
    17731779{
    17741780    if( !pStringClass ){
     
    17781784    return pStringClass;
    17791785}
    1780 CClass *CDBClass::GetObjectClass() const
     1786CClass *CDBClass::GetObjectClassPtr() const
    17811787{
    17821788    if( !pObjectClass ){
  • BasicCompiler_Common/Class.h

    r114 r117  
    275275    CClass *pStringClass;
    276276    CClass *pObjectClass;
    277     CClass *GetStringClass() const;
    278     CClass *GetObjectClass() const;
     277    CClass *GetStringClassPtr() const;
     278    CClass *GetObjectClassPtr() const;
    279279
    280280
  • BasicCompiler_Common/NumOpe_GetType.cpp

    r116 r117  
    614614                    // As演算子の右辺値
    615615                    //型名
    616                     if( (string)term=="Hoge"){
    617                         int test=0;
    618                     }
    619616                    if( Type::StringToType( term, resultType ) ){
    620617                        resultType.SetBasicType( resultType.GetBasicType() | FLAG_CAST );
     
    637634                    if( baseType.IsObject() || baseType.IsNull() ){
    638635                        //要求タイプがオブジェクト、または未定のとき
    639                         extern const CClass *pobj_StringClass;
    640636                        type_stack[sp]=DEF_OBJECT;
    641                         index_stack[sp]=(LONG_PTR)pobj_StringClass;
     637                        index_stack[sp]=(LONG_PTR)pobj_DBClass->GetStringClassPtr();
    642638                        bLiteralCalculation=0;
    643639
     
    688684                        }
    689685                        else{
    690                             index_stack[sp] = (LONG_PTR)pobj_DBClass->GetObjectClass();
     686                            index_stack[sp] = (LONG_PTR)pobj_DBClass->GetObjectClassPtr();
    691687                        }
    692688                        bLiteralCalculation = 0;
  • BasicCompiler_Common/Type.cpp

    r116 r117  
    8282    if( StringToBasicType( typeName, type.basicType ) ){
    8383        // 基本型だったとき
     84        return true;
     85    }
     86
     87
     88    // Object型だったとき
     89    if( typeName == "Object" ){
     90        type.SetType( DEF_OBJECT, pobj_DBClass->GetObjectClassPtr() );
     91        return true;
     92    }
     93
     94    // String型だったとき
     95    if( typeName == "String" ){
     96        type.SetType( DEF_OBJECT, pobj_DBClass->GetStringClassPtr() );
    8497        return true;
    8598    }
     
    507520
    508521Type Type::String(){
    509     extern const CClass *pobj_StringClass;
    510     if( pobj_StringClass == NULL ){
    511         SetError();
    512     }
    513     return Type( DEF_OBJECT, *pobj_StringClass );
    514 }
     522    return Type( DEF_OBJECT, *pobj_DBClass->GetStringClassPtr() );
     523}
  • BasicCompiler_Common/VariableOpe.cpp

    r116 r117  
    235235
    236236Type GetStringTypeInfo(){
    237     extern const CClass *pobj_StringClass;
    238     Type type( DEF_OBJECT, *pobj_StringClass );
     237    Type type( DEF_OBJECT, *pobj_DBClass->GetStringClassPtr() );
    239238    return type;
    240239}
  • BasicCompiler_Common/common.h

    r114 r117  
    4747
    4848#ifdef _AMD64_
    49 #define VER_INFO        "(x64) β rev.243"
     49#define VER_INFO        "(x64) β rev.245"
    5050#else
    51 #define VER_INFO        "β rev.243"
     51#define VER_INFO        "β rev.245"
    5252#endif
    5353
  • ProjectEditor/SubOperation.cpp

    r107 r117  
    545545    }
    546546    else if(str[0]=='o'||str[0]=='O'){
     547        if(lstrcmp(str,"Object")==0) return -1;
    547548        if(lstrcmpi(str,"Open")==0) return COM_OPEN;
    548549        if(lstrcmpi(str,"Operator")==0) return -1;
     
    572573        if(lstrcmp(str,"Single")==0) return -1;
    573574        if(lstrcmpi(str,"Sleep")==0) return COM_SLEEP;
    574         if(lstrcmpi(str,"Static")==0) return -1;
     575        if(lstrcmp(str,"String")==0) return -1;
    575576        if(lstrcmpi(str,"Sub")==0) return COM_SUB;
    576577        if(lstrcmpi(str,"Super")==0) return -1;
Note: See TracChangeset for help on using the changeset viewer.