Changeset 103 in dev for BasicCompiler_Common/Const.h


Ignore:
Timestamp:
May 2, 2007, 4:08:58 AM (17 years ago)
Author:
dai_9181
Message:

名前空間機能をグローバル変数、定数と列挙型に適用。
一部、クラスの静的メンバと名前空間の相性が悪いコードが潜んでいるため、要改修

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/Const.h

    r7 r103  
    22
    33//定数の基底クラス
    4 class CConstBase{
    5     char *Name;
     4class ConstBase{
     5    const string name;
     6    const NamespaceScopes namespaceScopes;
    67
    78public:
    89
    9     CConstBase(char *Name);
    10     ~CConstBase();
     10    ConstBase( const NamespaceScopes &namespaceScopes, const string &name )
     11        : namespaceScopes( namespaceScopes )
     12        , name( name )
     13    {
     14    }
     15    ~ConstBase()
     16    {
     17    }
    1118
    12     char *GetName();
     19    const string &GetName() const
     20    {
     21        return name;
     22    }
     23
     24    bool IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const;
     25    bool IsEqualSymbol( const string &name ) const;
    1326};
    1427
    1528//定数
    16 class CConst:public CConstBase{
    17     int Type;
     29class CConst:public ConstBase{
     30    Type type;
    1831    _int64 i64data;
    1932
     
    2134    CConst *pNext;
    2235
    23     CConst(char *Name, int Type, _int64 i64data);
    24     CConst(char *Name, int value);
     36    CConst( const NamespaceScopes &namespaceScopes, const string &name, const Type &type, _int64 i64data);
     37    CConst( const NamespaceScopes &namespaceScopes, const string &name, int value);
    2538    ~CConst();
    2639
    27     int GetType();
     40    Type GetType();
    2841    _int64 GetWholeData();
    2942    double GetDoubleData();
     
    3144
    3245//定数マクロ
    33 class CConstMacro:public CConstBase{
     46class CConstMacro:public ConstBase{
    3447    int ParmNum;
    3548    char **ppParm;
    3649public:
    3750
    38     CConstMacro(char *Name, char *Expression);
     51    CConstMacro( const NamespaceScopes &namespaceScopes, const string &name, char *Expression);
    3952    ~CConstMacro();
    4053};
     
    5770    void Init();
    5871
    59     void Add(char *buffer);
     72    void Add( const NamespaceScopes &namespaceScopes, char *buffer);
    6073private:
    61     void AddConst(char *Name, CConst *newconst);
     74    void AddConst( const string &name, CConst *newconst);
    6275public:
    63     void AddConst(char *Name, char *Expression);
    64     void AddConst(char *Name, int value);
     76    void AddConst( const NamespaceScopes &namespaceScopes, const string &name, char *Expression);
     77    void AddConst( const NamespaceScopes &namespaceScopes, const string &name, int value);
    6578
    6679private:
    67     CConst *GetObjectPtr(char *Name);
     80    CConst *GetObjectPtr( const string &name );
    6881public:
    6982
    70     int GetType(char *Name);
     83    int GetBasicType(char *Name);
    7184    _int64 GetWholeData(char *Name);
    7285    double GetDoubleData(char *Name);
     86    bool IsStringPtr(char *Name);
    7387
    7488
Note: See TracChangeset for help on using the changeset viewer.