Changeset 137 in dev for BasicCompiler_Common/include


Ignore:
Timestamp:
Jun 8, 2007, 3:11:47 AM (17 years ago)
Author:
dai_9181
Message:

アクセシビリティ周りをリファクタリングした。

Location:
BasicCompiler_Common/include
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/include/Member.h

    r136 r137  
    1010class CClass;
    1111
    12 class CMember : public Type
     12class CMember : public MemberPrototype
    1313{
    1414    string name;
     15    Type type;
    1516    bool isConst;
    1617public:
    1718    int SubScripts[MAX_ARRAYDIM];
    18 
    19     DWORD dwAccess;
    2019
    2120    char *InitBuf;
     
    3332    }
    3433
     34    Type GetType() const
     35    {
     36        return type;
     37    }
     38
    3539    bool IsConst()
    3640    {
     
    3842    }
    3943
    40     CMember()
     44    CMember( Prototype::Accessibility accessibility, const string &name, const Type &type, bool isConst )
     45        : MemberPrototype( accessibility )
     46        , name( name )
     47        , type( type )
     48        , isConst( isConst )
    4149    {
    4250    }
    43     CMember( CClass *pobj_c, DWORD access, bool idConst, bool isRef, char *buffer, int nowLine=-1 );
     51    CMember( CClass *pobj_c, Prototype::Accessibility accessibility, bool idConst, bool isRef, char *buffer, int nowLine=-1 );
    4452    CMember( CMember &member );
    4553    ~CMember();
  • BasicCompiler_Common/include/Method.h

    r136 r137  
    44#include <vector>
    55
     6#include "../Class.h"
    67#include <windows.h>
    78
     
    1213void SetError();
    1314
    14 class CMethod
     15class CMethod : public MemberPrototype
    1516{
    1617public:
    1718    UserProc *pUserProc;
    18     DWORD dwAccess;
    1919
    20     CMethod( UserProc *pUserProc, DWORD dwAccess )
    21         : pUserProc( pUserProc )
    22         , dwAccess( dwAccess )
     20    CMethod( UserProc *pUserProc, Prototype::Accessibility accessibility )
     21        : MemberPrototype( accessibility )
     22        , pUserProc( pUserProc )
    2323    {
    2424    }
     
    4141
    4242public:
    43     DynamicMethod( UserProc *pUserProc, DWORD dwAccess, bool isAbstract, bool isVirtual, bool isConst, const CClass *pInheritsClass = NULL )
    44         : CMethod( pUserProc, dwAccess )
     43    DynamicMethod( UserProc *pUserProc, Prototype::Accessibility accessibility, bool isAbstract, bool isVirtual, bool isConst, const CClass *pInheritsClass = NULL )
     44        : CMethod( pUserProc, accessibility )
    4545        , isAbstract( isAbstract )
    4646        , isVirtual( isVirtual )
     
    5050    }
    5151    DynamicMethod( const CMethod &method )
    52         : CMethod( method.pUserProc, method.dwAccess )
     52        : CMethod( method.pUserProc, method.GetAccessibility() )
    5353        , isAbstract( method.IsAbstract() )
    5454        , isVirtual( method.IsVirtual() )
     
    9090{
    9191public:
    92     StaticMethod( UserProc *pUserProc, DWORD dwAccess )
    93         : CMethod( pUserProc, dwAccess )
     92    StaticMethod( UserProc *pUserProc, Prototype::Accessibility accessibility )
     93        : CMethod( pUserProc, accessibility )
    9494    {
    9595    }
     
    116116
    117117    //メンバ、メソッドの追加
    118     void Add( UserProc *pUserProc,DWORD dwAccess, bool isConst, bool isAbstract, bool isVirtual );
    119     void AddStatic(UserProc *pUserProc,DWORD dwAccess);
     118    void Add( UserProc *pUserProc, Prototype::Accessibility accessibility, bool isConst, bool isAbstract, bool isVirtual );
     119    void AddStatic(UserProc *pUserProc,Prototype::Accessibility accessibility);
    120120
    121121    const CMethod *GetMethodPtr( UserProc *pUserProc ) const;
  • BasicCompiler_Common/include/Prototype.h

    r135 r137  
    1313class Prototype
    1414{
     15public:
     16    enum Accessibility{
     17        None,
     18        Private,
     19        Protected,
     20        Public,
     21    };
     22
     23private:
    1524    // 名前空間
    1625    NamespaceScopes namespaceScopes;
     
    6978
    7079};
     80
     81class MemberPrototype
     82{
     83    Prototype::Accessibility accessibility;
     84public:
     85    MemberPrototype( Prototype::Accessibility accessibility )
     86        : accessibility( accessibility )
     87    {
     88    }
     89
     90    Prototype::Accessibility GetAccessibility() const
     91    {
     92        return accessibility;
     93    }
     94    void SetAccessibility( Prototype::Accessibility accessibility ){
     95        this->accessibility = accessibility;
     96    }
     97
     98    bool IsNoneAccess() const
     99    {
     100        return ( accessibility == Prototype::None );
     101    }
     102    bool IsPrivate() const
     103    {
     104        return ( accessibility == Prototype::Private );
     105    }
     106    bool IsProtected() const
     107    {
     108        return ( accessibility == Prototype::Protected );
     109    }
     110    bool IsPublic() const
     111    {
     112        return ( accessibility == Prototype::Public );
     113    }
     114};
Note: See TracChangeset for help on using the changeset viewer.