Ignore:
Timestamp:
Jul 13, 2007, 2:49:56 AM (17 years ago)
Author:
dai_9181
Message:

UserProc/DllProc/ProcPointerクラスをSymbolクラスからの派生にした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/src/Procedure.cpp

    r206 r208  
    3030        return GetParentClassPtr()->GetNamespaceScopes();
    3131    }
    32     return namespaceScopes;
     32    return Symbol::GetNamespaceScopes();
    3333}
    3434const NamespaceScopesCollection &UserProc::GetImportedNamespaces() const
    3535{
    3636    return importedNamespaces;
    37 }
    38 bool UserProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const
    39 {
    40     if( GetName() != name ){
    41         return false;
    42     }
    43 
    44     return compiler.GetNamespaceSupporter().IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );
    45 }
    46 bool UserProc::IsEqualSymbol( const UserProc &globalProc ) const
    47 {
    48     return IsEqualSymbol( globalProc.GetNamespaceScopes(), globalProc.GetName() );
    49 }
    50 bool UserProc::IsEqualSymbol( const string &fullName ) const
    51 {
    52     char AreaName[VN_SIZE] = "";        //オブジェクト変数
    53     char NestName[VN_SIZE] = "";        //入れ子メンバ
    54     bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
    55 
    56     return IsEqualSymbol( NamespaceScopes( AreaName ), NestName );
    5737}
    5838bool UserProc::IsVirtual() const
     
    596576    UserProc *pUserProc = GetHashArrayElement( simpleName );
    597577    while(pUserProc){
    598         if(!pUserProc->GetParentClassPtr()){
     578        if( pUserProc->IsGlobalProcedure() ){
    599579            if( pUserProc->IsEqualSymbol( localName ) ){
    600580                subs.push_back( pUserProc );
     
    606586}
    607587
    608 
    609 bool DllProc::IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const
    610 {
    611     if( GetName() != name ){
    612         return false;
    613     }
    614     return compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes );
    615 }
    616 bool DllProc::IsEqualSymbol( const string &fullName ) const
    617 {
    618     char AreaName[VN_SIZE] = "";        //オブジェクト変数
    619     char NestName[VN_SIZE] = "";        //入れ子メンバ
    620     bool isNest = SplitMemberName( fullName.c_str(), AreaName, NestName );
    621 
    622     if( IsEqualSymbol( NamespaceScopes( AreaName ), NestName ) ){
    623         return true;
    624     }
    625 
    626     if( isNest ){
    627         // 静的メンバを考慮
    628 
    629         char AreaName2[VN_SIZE] = "";       //オブジェクト変数
    630         char NestName2[VN_SIZE] = "";       //入れ子メンバ
    631         bool isNest = SplitMemberName( AreaName, AreaName2, NestName2 );
    632         lstrcat( NestName2, "." );
    633         lstrcat( NestName2, NestName );
    634 
    635         return IsEqualSymbol( NamespaceScopes( AreaName2 ), NestName2 );
    636     }
    637 
    638     return false;
    639 }
    640588bool DllProc::SetParamsAndReturnType( const char *sourceOfParams, int nowLine ){
    641589    int i = 0;
Note: See TracChangeset for help on using the changeset viewer.