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/BasicCompiler32/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"
     
    187194
    188195    //アクセシビリティをチェック
    189     if(&objClass==pobj_CompilingClass){
     196    if(&objClass==Smoothie::Temp::pCompilingClass){
    190197        //同一クラスオブジェクトの場合はプライベートアクセスを容認する
    191198        if(pMember->IsNoneAccess()){
     
    360367    // 名前空間を分離
    361368    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    362     Smoothie::meta.namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
     369    Smoothie::GetMeta().namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
    363370
    364371    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    417424    }
    418425
    419     if(pobj_CompilingClass){
     426    if(Smoothie::Temp::pCompilingClass){
    420427        //////////////////////
    421428        // クラスメンバの参照
     
    430437            pRelativeVar->dwKind=VAR_DIRECTMEM;
    431438
    432             resultType.SetType( DEF_OBJECT, pobj_CompilingClass );
     439            resultType.SetType( DEF_OBJECT, Smoothie::Temp::pCompilingClass );
    433440            return true;
    434441        }
     
    443450
    444451            bool isFound = false;
    445             BOOST_FOREACH( CMember *pMember, pobj_CompilingClass->GetDynamicMembers() ){
     452            BOOST_FOREACH( CMember *pMember, Smoothie::Temp::pCompilingClass->GetDynamicMembers() ){
    446453                if( pMember->GetName() == VarName ){
    447454                    isFound = true;
     
    454461        //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき
    455462        //(コンストラクタ、デストラクタ内を除く)
    456         const CMethod *pMethod = pobj_DBClass->GetNowCompilingMethodInfo();
     463        const CMethod *pMethod = Smoothie::GetMeta().GetClasses().GetNowCompilingMethodInfo();
    457464        if( isWriteAccess &&
    458465            pMethod->IsConst() &&
    459             pobj_CompilingClass->IsCompilingConstructor() == false &&
    460             pobj_CompilingClass->IsCompilingDestructor() == false
     466            Smoothie::Temp::pCompilingClass->IsCompilingConstructor() == false &&
     467            Smoothie::Temp::pCompilingClass->IsCompilingDestructor() == false
    461468            ){
    462469                SetError(131, NULL, cp );
     
    473480            isErrorEnabled,
    474481            isWriteAccess,
    475             *pobj_CompilingClass,
     482            *Smoothie::Temp::pCompilingClass,
    476483            variable,
    477484            pRelativeVar,
     
    517524            }
    518525
    519             int typeDefIndex = Smoothie::meta.typeDefs.GetIndex( VarName );
     526            int typeDefIndex = Smoothie::GetMeta().typeDefs.GetIndex( VarName );
    520527            if( typeDefIndex != -1 ){
    521528                // TypeDef後の型名だったとき
    522                 lstrcpy( VarName, Smoothie::meta.typeDefs[typeDefIndex].GetBaseName().c_str() );
     529                lstrcpy( VarName, Smoothie::GetMeta().typeDefs[typeDefIndex].GetBaseName().c_str() );
    523530            }
    524531
     
    533540        }
    534541
    535         if(pobj_CompilingClass){
     542        if(Smoothie::Temp::pCompilingClass){
    536543            //自身のクラスから静的メンバを参照する場合
    537544            char temp2[VN_SIZE];
    538             sprintf(temp2,"%s.%s",pobj_CompilingClass->GetName().c_str(),VarName);
     545            sprintf(temp2,"%s.%s",Smoothie::Temp::pCompilingClass->GetName().c_str(),VarName);
    539546            pVar = globalVars.Find( Symbol( temp2 ) );
    540547            if( pVar ){
     
    825832            char *temp;
    826833            temp=(char *)i64data;
    827             i2=dataTable.AddString(temp,lstrlen(temp));
     834            i2=Compiler::GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
    828835            HeapDefaultFree(temp);
    829836
     
    10151022            char *temp;
    10161023            temp=(char *)i64data;
    1017             i2=dataTable.AddString(temp,lstrlen(temp));
     1024            i2=Compiler::GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
    10181025            HeapDefaultFree(temp);
    10191026
     
    10991106
    11001107        //レキシカルスコープ
    1101         pVar->ScopeLevel=obj_LexScopes.GetNowLevel();
    1102         pVar->ScopeStartAddress=obj_LexScopes.GetStartAddress();
     1108        pVar->ScopeLevel=GetLexicalScopes().GetNowLevel();
     1109        pVar->ScopeStartAddress=GetLexicalScopes().GetStartAddress();
    11031110        pVar->bLiving=TRUE;
    11041111
     
    11341141
    11351142        //レキシカルスコープ
    1136         pVar->ScopeLevel=obj_LexScopes.GetNowLevel();
    1137         pVar->ScopeStartAddress=obj_LexScopes.GetStartAddress();
     1143        pVar->ScopeLevel=GetLexicalScopes().GetNowLevel();
     1144        pVar->ScopeStartAddress=GetLexicalScopes().GetStartAddress();
    11381145        pVar->bLiving=TRUE;
    11391146
Note: See TracChangeset for help on using the changeset viewer.