Ignore:
Timestamp:
May 5, 2008, 1:09:21 PM (17 years ago)
Author:
dai_9181
Message:

AddMemberAddDynamicMethod
・CMember→Member
・CreateMemberメソッドをCClassクラスからLexicalAnalyzerクラスへ移動した。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp

    r560 r561  
    224224
    225225    bool result = true;
    226     BOOST_FOREACH( CMember *pMember, objClass.GetDynamicMembers() ){
     226    BOOST_FOREACH( Member *pMember, objClass.GetDynamicMembers() ){
    227227        if(pMember->GetType().IsStruct()){
    228228            //循環参照でないかをチェック
     
    268268}
    269269
     270Member *LexicalAnalyzer::CreateMember( const CClass &_class, Prototype::Accessibility accessibility, bool isConst, bool isRef, char *buffer, int nowLine )
     271{
     272    extern int cp;
     273
     274    //構文を解析
     275    char VarName[VN_SIZE];
     276    char initBuffer[VN_SIZE];
     277    char lpszConstructParameter[VN_SIZE];
     278    Subscripts subscripts;
     279    Type type;
     280    GetDimentionFormat(buffer,VarName,subscripts,type,initBuffer,lpszConstructParameter);
     281
     282    //重複チェック
     283    if( _class.DupliCheckAll( VarName ) ){
     284        compiler.errorMessenger.Output(15,VarName,cp);
     285    }
     286
     287    Member *pMember = new Member( accessibility, VarName, type, isConst, subscripts, initBuffer, lpszConstructParameter );
     288    pMember->source_code_address = nowLine;
     289    return pMember;
     290}
     291
    270292void LexicalAnalyzer::AddMethod(CClass *pobj_c, UserProc *pUserProc, Prototype::Accessibility accessibility, BOOL bStatic, bool isConst, bool isAbstract,
    271293    bool isVirtual, bool isOverride, const char *interfaceName, bool isAutoGeneration, int nowLine)
     
    11601182                        //静的メンバを追加
    11611183                        cp=i;   //エラー用
    1162                         pobj_c->AddStaticMember( accessibility, isConst, false, temporary, i);
     1184                        pobj_c->AddStaticMember(
     1185                            LexicalAnalyzer::CreateMember( *pobj_c, accessibility, isConst, false, temporary, i )
     1186                        );
    11631187                    }
    11641188                    else{
    11651189                        //メンバを追加
    11661190                        cp=i;   //エラー用
    1167                         pobj_c->AddMember( accessibility, isConst, false, temporary, i );
     1191                        pobj_c->AddDynamicMember(
     1192                            LexicalAnalyzer::CreateMember( *pobj_c, accessibility, isConst, false, temporary, i )
     1193                        );
    11681194
    11691195
Note: See TracChangeset for help on using the changeset viewer.