Index: BasicCompiler_Common/Class.h
===================================================================
--- BasicCompiler_Common/Class.h	(revision 73)
+++ BasicCompiler_Common/Class.h	(revision 75)
@@ -1,15 +1,7 @@
 #include <vector>
+#include "Type.h"
 
 class CClass;
-class SubInfo;
-
-//データ型
-struct TYPEINFO{
-	int type;
-	union{
-		LONG_PTR lpIndex;
-		CClass *pobj_Class;
-	}u;
-};
+class UserProc;
 
 #define ACCESS_NON			0
@@ -18,11 +10,10 @@
 #define ACCESS_PROTECTED	3
 
-class CMember{
+class CMember : public Type
+{
 	bool isConst;
-	bool isRef;
 public:
 	char *name;
 	int SubScripts[MAX_ARRAYDIM];
-	TYPEINFO TypeInfo;
 
 	DWORD dwAccess;
@@ -34,12 +25,10 @@
 
 
-	CMember( CClass *pobj_c, DWORD access, bool idConst, bool isRef, char *buffer, int NowLine=-1 );
-	CMember( CMember *pobj );
+	CMember( CClass *pobj_c, DWORD access, bool idConst, bool isRef, char *buffer, int nowLine=-1 );
+	CMember( CMember &member );
 	CMember();
 	~CMember();
 
 	bool IsConst();
-	bool IsRef();
-	int GetSize();
 
 
@@ -48,5 +37,5 @@
 class CMethod{
 public:
-	SubInfo *psi;
+	UserProc *pUserProc;
 	DWORD dwAccess;
 	BOOL bAbstract;
@@ -115,7 +104,7 @@
 	//メンバ、メソッドの追加
 	void AddMember( DWORD dwAccess, bool idConst, bool isRef, char *buffer );
-	void AddStaticMember( DWORD dwAccess, bool isConst, bool isRef, char *buffer, int NowLine );
-	void AddMethod( SubInfo *psi,DWORD dwAccess, bool isConst, BOOL bAbstract, BOOL bVirtual );
-	void AddStaticMethod(SubInfo *psi,DWORD dwAccess);
+	void AddStaticMember( DWORD dwAccess, bool isConst, bool isRef, char *buffer, int nowLine );
+	void AddMethod( UserProc *pUserProc,DWORD dwAccess, bool isConst, BOOL bAbstract, BOOL bVirtual );
+	void AddStaticMethod(UserProc *pUserProc,DWORD dwAccess);
 
 	//重複チェック
@@ -124,15 +113,15 @@
 
 	//メソッド取得
-	CMethod *GetMethodInfo( SubInfo *psi );
-	CMethod *GetStaticMethodInfo( SubInfo *psi );
+	CMethod *GetMethodInfo( UserProc *pUserProc ) const;
+	CMethod *GetStaticMethodInfo( UserProc *pUserProc ) const;
 
 	//メソッドの存在を確認
-	bool IsExistMethod( const char *name );
-	bool IsExistStaticMethod( const char *name );
+	bool IsExistMethod( const char *name ) const;
+	bool IsExistStaticMethod( const char *name ) const;
 
 	//メソッドを列挙
-	void EnumStaticMethod( const char *methodName, std::vector<SubInfo *> &subs ) const;
-	void EnumMethod( const char *methodName, std::vector<SubInfo *> &subs ) const;
-	void EnumMethod( const BYTE idOperatorCalc, std::vector<SubInfo *> &subs ) const;
+	void EnumStaticMethod( const char *methodName, std::vector<UserProc *> &subs ) const;
+	void EnumMethod( const char *methodName, std::vector<UserProc *> &subs ) const;
+	void EnumMethod( const BYTE idOperatorCalc, std::vector<UserProc *> &subs ) const;
 
 	//デフォルト コンストラクタ メソッドを取得
@@ -157,8 +146,8 @@
 	long vtbl_offset;
 public:
-	int GetFuncNumInVtbl( const SubInfo *psi ) const;
+	int GetFuncNumInVtbl( const UserProc *pUserProc ) const;
 	LONG_PTR GetVtblGlobalOffset(void);
 	void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection);
-	bool IsAbstract();
+	bool IsAbstract() const;
 
 
@@ -169,5 +158,5 @@
 	void NotifyStartConstructorCompile();
 	void NotifyFinishConstructorCompile();
-	bool IsCompilingConstructor();
+	bool IsCompilingConstructor() const;
 
 	//デストラクタをコンパイルしているかどうかのチェックフラグ
@@ -177,15 +166,15 @@
 	void NotifyStartDestructorCompile();
 	void NotifyFinishDestructorCompile();
-	bool IsCompilingDestructor();
+	bool IsCompilingDestructor() const;
 
 
 	//自身と等しいクラスかどうかを確認
-	bool IsEquals( CClass *pClass );
+	bool IsEquals( const CClass *pClass ) const;
 
 	//自身の派生クラスかどうかを確認
-	bool IsSubClass( CClass *pClass );
+	bool IsSubClass( const CClass *pClass ) const;
 
 	//自身と等しいまたは派生クラスかどうかを確認
-	bool IsEqualsOrSubClass( CClass *pClass );
+	bool IsEqualsOrSubClass( const CClass *pClass ) const;
 
 
@@ -214,5 +203,5 @@
 	CClass *check(const char *name);
 
-	CClass *AddClass(const char *name,int NowLine);
+	CClass *AddClass(const char *name,int nowLine);
 
 	void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection);
@@ -220,6 +209,6 @@
 private:
 	void AddMethod(CClass *pobj_c, DWORD dwAccess, BOOL bStatic, bool isConst, BOOL bAbstract,
-		BOOL bVirtual, BOOL bOverride, char *buffer, int NowLine);
-	BOOL MemberVar_LoopRefCheck(CClass *pobj_c);
+		BOOL bVirtual, BOOL bOverride, char *buffer, int nowLine);
+	BOOL MemberVar_LoopRefCheck(const CClass &objClass);
 public:
 	void InitNames(void);
@@ -245,5 +234,5 @@
 public:
 	//コンパイル開始の通知を受け取るメソッド
-	void StartCompile( SubInfo *psi );
+	void StartCompile( UserProc *pUserProc );
 
 	//現在コンパイル中のメソッド情報を取得
