Ignore:
Timestamp:
Jun 24, 2007, 6:50:40 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/Compile_Var.cpp

    r159 r183  
     1#include <jenga/include/smoothie/Smoothie.h>
     2#include <jenga/include/smoothie/LexicalAnalysis.h>
     3
     4#include <LexicalScopingImpl.h>
     5#include <CodeGenerator.h>
     6#include <Compiler.h>
     7
    18#include "../BasicCompiler_Common/common.h"
    29#include "Opcode.h"
     
    216223
    217224    //アクセシビリティをチェック
    218     if(&objClass==pobj_CompilingClass){
     225    if(&objClass==Smoothie::Temp::pCompilingClass){
    219226        //同一クラスオブジェクトの場合はプライベートアクセスを容認する
    220227        if(pMember->IsNoneAccess()){
     
    388395    // 名前空間を分離
    389396    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    390     Smoothie::meta.namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
     397    Smoothie::GetMeta().namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
    391398
    392399    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    446453
    447454
    448     if(pobj_CompilingClass){
     455    if(Smoothie::Temp::pCompilingClass){
    449456        //////////////////////
    450457        // クラスメンバの参照
     
    457464            pRelativeVar->dwKind=VAR_DIRECTMEM;
    458465
    459             resultType.SetType( DEF_OBJECT, pobj_CompilingClass );
     466            resultType.SetType( DEF_OBJECT, Smoothie::Temp::pCompilingClass );
    460467            return true;
    461468        }
     
    470477
    471478            bool isFound = false;
    472             BOOST_FOREACH( CMember *pMember, pobj_CompilingClass->GetDynamicMembers() ){
     479            BOOST_FOREACH( CMember *pMember, Smoothie::Temp::pCompilingClass->GetDynamicMembers() ){
    473480                if( pMember->GetName() == VarName ){
    474481                    isFound = true;
     
    481488        //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき
    482489        //(コンストラクタ、デストラクタ内を除く)
    483         const CMethod *pMethod = pobj_DBClass->GetNowCompilingMethodInfo();
     490        const CMethod *pMethod = Smoothie::GetMeta().GetClasses().GetNowCompilingMethodInfo();
    484491        if( isWriteAccess &&
    485492            pMethod->IsConst() &&
    486             pobj_CompilingClass->IsCompilingConstructor() == false &&
    487             pobj_CompilingClass->IsCompilingDestructor() == false
     493            Smoothie::Temp::pCompilingClass->IsCompilingConstructor() == false &&
     494            Smoothie::Temp::pCompilingClass->IsCompilingDestructor() == false
    488495            ){
    489496                SetError(131, NULL, cp );
     
    497504            isErrorEnabled,
    498505            isWriteAccess,
    499             *pobj_CompilingClass,
     506            *Smoothie::Temp::pCompilingClass,
    500507            variable,
    501508            pRelativeVar,
     
    541548            }
    542549
    543             int typeDefIndex = Smoothie::meta.typeDefs.GetIndex( VarName );
     550            int typeDefIndex = Smoothie::GetMeta().typeDefs.GetIndex( VarName );
    544551            if( typeDefIndex != -1 ){
    545552                // TypeDef後の型名だったとき
    546                 lstrcpy( VarName, Smoothie::meta.typeDefs[typeDefIndex].GetBaseName().c_str() );
     553                lstrcpy( VarName, Smoothie::GetMeta().typeDefs[typeDefIndex].GetBaseName().c_str() );
    547554            }
    548555
     
    557564        }
    558565
    559         if(pobj_CompilingClass){
     566        if(Smoothie::Temp::pCompilingClass){
    560567            //自身のクラスから静的メンバを参照する場合
    561568            char temp2[VN_SIZE];
    562             sprintf(temp2,"%s.%s",pobj_CompilingClass->GetName().c_str(),VarName);
     569            sprintf(temp2,"%s.%s",Smoothie::Temp::pCompilingClass->GetName().c_str(),VarName);
    563570            pVar = globalVars.Find( temp2 );
    564571            if( pVar ){
     
    844851            char *temp;
    845852            temp=(char *)i64data;
    846             i2=dataTable.AddString( temp );
     853            i2=Compiler::GetNativeCode().GetDataTable().AddString( temp );
    847854            HeapDefaultFree(temp);
    848855
     
    9941001            char *temp;
    9951002            temp=(char *)i64data;
    996             i2=dataTable.AddString( temp );
     1003            i2=Compiler::GetNativeCode().GetDataTable().AddString( temp );
    9971004            HeapDefaultFree(temp);
    9981005
     
    10861093
    10871094        //レキシカルスコープ
    1088         pVar->ScopeLevel=obj_LexScopes.GetNowLevel();
    1089         pVar->ScopeStartAddress=obj_LexScopes.GetStartAddress();
     1095        pVar->ScopeLevel=GetLexicalScopes().GetNowLevel();
     1096        pVar->ScopeStartAddress=GetLexicalScopes().GetStartAddress();
    10901097        pVar->bLiving=TRUE;
    10911098
     
    11211128
    11221129        //レキシカルスコープ
    1123         pVar->ScopeLevel=obj_LexScopes.GetNowLevel();
    1124         pVar->ScopeStartAddress=obj_LexScopes.GetStartAddress();
     1130        pVar->ScopeLevel=GetLexicalScopes().GetNowLevel();
     1131        pVar->ScopeStartAddress=GetLexicalScopes().GetStartAddress();
    11251132        pVar->bLiving=TRUE;
    11261133
Note: See TracChangeset for help on using the changeset viewer.