Changeset 117 in dev for BasicCompiler_Common


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

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

Location:
BasicCompiler_Common
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.