Index: trunk/jenga/include/common/BoostXmlSupport.h
===================================================================
--- trunk/jenga/include/common/BoostXmlSupport.h	(revision 203)
+++ trunk/jenga/include/common/BoostXmlSupport.h	(revision 205)
@@ -19,4 +19,6 @@
 #include <boost/serialization/is_abstract.hpp>
 
+#include <windows.h>
+
 namespace Jenga{
 namespace Common{
@@ -27,6 +29,11 @@
 	virtual const char *RootTagName() const = 0;
 
+	void echo( const char *msg ) const
+	{
+		MessageBox( NULL, msg, "XMLシリアライズの例外", MB_OK );
+	}
+
 public:
-	bool Read( istream& ifs )
+	bool Read( istream& ifs, bool isShowExceptionMessage = true )
 	{
 		bool isSuccessful = false;
@@ -40,6 +47,16 @@
 			isSuccessful = true;
 		}
+		catch( boost::archive::archive_exception e )
+		{
+			if( isShowExceptionMessage )
+			{
+				echo( e.what() );
+			}
+		}
 		catch(...){
-			// 失敗
+			if( isShowExceptionMessage )
+			{
+				echo( "archive_exception以外の不明な例外" );
+			}
 		}
 
@@ -52,5 +69,5 @@
 	}
 
-	bool Write( ostream& ofs ) const
+	bool Write( ostream& ofs, bool isShowExceptionMessage = true ) const
 	{
 		bool isSuccessful = false;
@@ -64,6 +81,16 @@
 			isSuccessful = true;
 		}
-		catch( ... ){
-			// 失敗
+		catch( boost::archive::archive_exception e )
+		{
+			if( isShowExceptionMessage )
+			{
+				echo( e.what() );
+			}
+		}
+		catch(...){
+			if( isShowExceptionMessage )
+			{
+				echo( "archive_exception以外の不明な例外" );
+			}
 		}
 
@@ -76,5 +103,5 @@
 	}
 
-	bool Read( const string &xmlFilePath )
+	bool Read( const string &xmlFilePath, bool isShowExceptionMessage = true )
 	{
 		bool isSuccessful = false;
@@ -83,5 +110,5 @@
 		std::ifstream ifs( xmlFilePath.c_str() );
 		
-		bool result = Read(ifs);
+		bool result = Read(ifs,isShowExceptionMessage);
 
 		// 入力を閉じる
@@ -91,10 +118,10 @@
 	}
 
-	bool Write( const string &xmlFilePath ) const
+	bool Write( const string &xmlFilePath, bool isShowExceptionMessage = true ) const
 	{
 		// 出力アーカイブの作成
 		std::ofstream ofs( xmlFilePath.c_str() );
 
-		bool result = Write(ofs);
+		bool result = Write(ofs,isShowExceptionMessage);
 
 		// 出力を閉じる
@@ -104,5 +131,5 @@
 	}
 
-	bool ReadFromString( const wstring &xmlBuffer )
+	bool ReadFromString( const string &xmlBuffer )
 	{
 		bool isSuccessful = false;
Index: trunk/jenga/include/common/Environment.h
===================================================================
--- trunk/jenga/include/common/Environment.h	(revision 203)
+++ trunk/jenga/include/common/Environment.h	(revision 205)
Index: trunk/jenga/include/common/logger.h
===================================================================
--- trunk/jenga/include/common/logger.h	(revision 203)
+++ trunk/jenga/include/common/logger.h	(revision 205)
@@ -13,4 +13,5 @@
 
 #include <jenga/include/common/Environment.h>
+#include <jenga/include/common/BoostXmlSupport.h>
 
 #define STDX_DSTREAM_BUFFERING
@@ -23,4 +24,28 @@
 
 
+class LoggerSetting : public BoostXmlSupport<LoggerSetting>
+{
+public:
+	int stopStep;
+
+	LoggerSetting()
+		: stopStep( -1 )
+	{
+	}
+
+	// XMLシリアライズ用
+private:
+	virtual const char *RootTagName() const
+	{
+		return "loggerSetting";
+	}
+	friend class boost::serialization::access;
+	template<class Archive> void serialize(Archive& ar, const unsigned int version)
+	{
+		ar & BOOST_SERIALIZATION_NVP( stopStep );
+	}
+};
+
+
 // VC++ で STLport だと using std::char_traits; みたいなのが必要かも
 template <typename Ch_T, typename Tr_T = std::char_traits<Ch_T> >
@@ -29,12 +54,25 @@
 protected:
 	std::string saveFilePath;
+	int count;
+	LoggerSetting setting;
 
 public:
-	basic_dbg_streambuf( const std::string &saveFilePath )
+	basic_dbg_streambuf( const std::string &saveFilePath, bool isOptionEnabled )
 		: saveFilePath( saveFilePath )
+		, count( 0 )
 	{
 #ifndef STDX_DSTREAM_BUFFERING
 		setbuf(0,0);
 #endif
+
+		if( isOptionEnabled )
+		{
+			// 設定ファイルを読み込む
+			char temporary[MAX_PATH];
+			char temp2[MAX_PATH];
+			char temp3[MAX_PATH];
+			_splitpath(saveFilePath.c_str(),temporary,temp2,temp3,NULL);
+			setting.Read( (string)temporary + temp2 + temp3 + ".setting.xml", false );
+		}
 	}
 
@@ -59,6 +97,11 @@
 {
 	ofstream ofs( ( saveFilePath ).c_str(), ios_base::app );
-	ofs << str ;
+	ofs << "[" << (count++) << "] " << str ;
 	ofs.close();
+
+	if( (count-1) == setting.stopStep )
+	{
+		DebugBreak();
+	}
 }
 
@@ -67,6 +110,6 @@
 {
 public:
-	basic_dbg_ostream( const string &saveFilePath )
-		: std::basic_ostream<Ch_T, Tr_T>(new basic_dbg_streambuf<Ch_T, Tr_T>(saveFilePath))
+	basic_dbg_ostream( const string &saveFilePath, bool isOptionEnabled )
+		: std::basic_ostream<Ch_T, Tr_T>(new basic_dbg_streambuf<Ch_T, Tr_T>(saveFilePath,isOptionEnabled))
 	{
 		ofstream ofs( ( saveFilePath ).c_str(), ios_base::trunc );
@@ -87,2 +130,4 @@
 
 }}
+
+BOOST_CLASS_IMPLEMENTATION(Jenga::Common::LoggerSetting, boost::serialization::object_serializable);
Index: trunk/jenga/include/smoothie/BasicFixed.h
===================================================================
--- trunk/jenga/include/smoothie/BasicFixed.h	(revision 203)
+++ trunk/jenga/include/smoothie/BasicFixed.h	(revision 205)
@@ -186,8 +186,9 @@
 #define ESC_IMPORTS			'q'		// Imports
 #define ESC_CLEARNAMESPACEIMPORTED 'r'	// _ClearNamespaceImported
+#define ESC_OPERATOR		's'
 //EXEファイル用制御エスケープシーケンス
-#define ESC_USING			's'		// Print命令語のUsing
-#define ESC_FOR				't'		// Open命令語のFor
-#define ESC_LINENUM			'u'		// 行番号を示す
+#define ESC_USING			't'		// Print命令語のUsing
+#define ESC_FOR				'u'		// Open命令語のFor
+#define ESC_LINENUM			'v'		// 行番号を示す
 
 //オブジェクト指向エスケープシーケンス
@@ -203,3 +204,2 @@
 #define ESC_INTERFACE		(char)0xA9
 #define ESC_ENDINTERFACE	(char)0xAA
-#define ESC_OPERATOR		(char)0xAB
Index: trunk/jenga/include/smoothie/Class.h
===================================================================
--- trunk/jenga/include/smoothie/Class.h	(revision 203)
+++ 	(revision )
@@ -1,445 +1,0 @@
-#pragma once
-
-#include <jenga/include/common/BoostXmlSupport.h>
-
-#include "Prototype.h"
-#include "Member.h"
-#include "Method.h"
-#include "LexicalAnalysis.h"
-
-class InheritedInterface
-{
-	CClass *pInterfaceClass;
-	int vtblOffset;
-public:
-	InheritedInterface( CClass *pInterfaceClass, int vtblOffset )
-		: pInterfaceClass( pInterfaceClass )
-		, vtblOffset( vtblOffset )
-	{
-	}
-
-	CClass &GetInterfaceClass() const{
-		return *pInterfaceClass;
-	}
-	int GetVtblOffset() const
-	{
-		return vtblOffset;
-	}
-};
-typedef vector<InheritedInterface> Interfaces;
-
-class CClass : public Prototype
-{
-public:
-	// メンバの参照方法
-	enum RefType{
-		Non = 0,		// no reference member
-		Dot,			// obj.member
-		Pointer,		// obj->member
-	};
-
-	// 型の種類
-	enum ClassType{
-		Class,
-		Interface,
-		Enum,
-		Delegate,
-		Structure,
-	};
-
-protected:
-	ClassType classType;
-
-	// importされている名前空間
-	NamespaceScopesCollection importedNamespaces;
-
-	// 実装するインターフェイス
-	Interfaces interfaces;
-	
-	// 継承クラス
-	const CClass *pSuperClass;
-
-	// Blittable型情報
-	Type blittableType;
-
-	// 動的メンバ
-	Members dynamicMembers;
-
-	// 静的メンバ
-	Members staticMembers;
-
-	// 動的メソッド
-	Methods methods;
-	int ConstructorMemberSubIndex;
-	int DestructorMemberSubIndex;
-	int vtblNum;					// 仮想関数の数
-
-	// 静的メソッド
-	Methods staticMethods;
-
-
-	// XMLシリアライズ用
-	// TODO: xml実装
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Prototype );
-		ar & BOOST_SERIALIZATION_NVP( classType );
-		ar & BOOST_SERIALIZATION_NVP( importedNamespaces );
-		//ar & BOOST_SERIALIZATION_NVP( interfaces );
-		ar & boost::serialization::make_nvp( "pSuperClass", const_cast<CClass *&>(pSuperClass) );
-		ar & BOOST_SERIALIZATION_NVP( blittableType );
-		//ar & BOOST_SERIALIZATION_NVP( dynamicMembers );
-		//ar & BOOST_SERIALIZATION_NVP( staticMembers );
-		//ar & BOOST_SERIALIZATION_NVP( methods );
-		ar & BOOST_SERIALIZATION_NVP( ConstructorMemberSubIndex );
-		ar & BOOST_SERIALIZATION_NVP( DestructorMemberSubIndex );
-		ar & BOOST_SERIALIZATION_NVP( vtblNum );
-		//ar & BOOST_SERIALIZATION_NVP( staticMethods );
-	}
-
-
-	bool isReady;
-
-public:
-
-	//アラインメント値
-	int iAlign;
-
-	CClass( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const string &name )
-		: isReady( false )
-		, Prototype( namespaceScopes, name )
-		, importedNamespaces( importedNamespaces )
-		, ConstructorMemberSubIndex( -1 )
-		, DestructorMemberSubIndex( -1 )
-		, classType( Class )
-		, pSuperClass( NULL )
-		, vtblNum( 0 )
-		, iAlign( 0 )
-		, vtbl_offset( -1 )
-		, isCompilingConstructor( false )
-		, isCompilingDestructor( false )
-		, pobj_NextClass( NULL )
-	{
-	}
-	CClass()
-		: isReady( false )
-		, Prototype()
-		, importedNamespaces()
-		, ConstructorMemberSubIndex( -1 )
-		, DestructorMemberSubIndex( -1 )
-		, classType()
-		, pSuperClass( NULL )
-		, vtblNum( 0 )
-		, iAlign( 0 )
-		, vtbl_offset( -1 )
-		, isCompilingConstructor( false )
-		, isCompilingDestructor( false )
-		, pobj_NextClass( NULL )
-	{
-	}
-	~CClass();
-
-	void Readed(){
-		isReady = true;
-	}
-	bool IsReady() const{
-		return isReady;
-	}
-
-	const NamespaceScopesCollection &GetImportedNamespaces() const
-	{
-		return importedNamespaces;
-	}
-
-	// インターフェイス
-	bool HasInterfaces() const
-	{
-		return ( interfaces.size() != 0 );
-	}
-	bool IsInheritsInterface( const CClass *pInterfaceClass ) const;
-
-	// 継承元クラス
-	bool HasSuperClass() const
-	{
-		return ( pSuperClass != NULL );
-	}
-	const CClass &GetSuperClass() const
-	{
-		return *pSuperClass;
-	}
-	void SetSuperClass( const CClass *pSuperClass )
-	{
-		this->pSuperClass = pSuperClass;
-	}
-
-	// Blittable型
-	bool IsBlittableType() const
-	{
-		return !blittableType.IsNull();
-	}
-	const Type &GetBlittableType() const
-	{
-		return blittableType;
-	}
-	void SetBlittableType( const Type &type ){
-		blittableType = type;
-	}
-
-	bool IsClass() const;
-	bool IsInterface() const;
-	bool IsEnum() const;
-	bool IsDelegate() const;
-	bool IsStructure() const;
-	void SetClassType( ClassType classType )
-	{
-		this->classType = classType;
-	}
-
-	// 継承させる
-	virtual bool Inherits( const char *inheritNames, int nowLine ) = 0;
-	virtual bool InheritsClass( const CClass &inheritsClass, int nowLine ) = 0;
-	virtual bool InheritsInterface( const CClass &inheritsClass, int nowLine ) = 0;
-
-	virtual void AddMember( Prototype::Accessibility accessibility, bool idConst, bool isRef, char *buffer, int nowLine ) = 0;
-	virtual void AddStaticMember( Prototype::Accessibility accessibility, bool isConst, bool isRef, char *buffer, int nowLine ) = 0;
-
-	virtual void AddMethod(CClass *pobj_c, Prototype::Accessibility accessibility, BOOL bStatic, bool isConst, bool isAbstract,
-		bool isVirtual, bool isOverride, char *buffer, int nowLine) = 0;
-
-	//重複チェック
-	BOOL DupliCheckAll(const char *name);
-	BOOL DupliCheckMember(const char *name);
-
-	const Members &GetDynamicMembers() const
-	{
-		return dynamicMembers;
-	}
-	const Members &GetStaticMembers() const
-	{
-		return staticMembers;
-	}
-	Members &GetDynamicMembers()
-	{
-		return dynamicMembers;
-	}
-	Members &GetStaticMembers()
-	{
-		return staticMembers;
-	}
-
-	const Methods &GetMethods() const
-	{
-		return methods;
-	}
-	const Methods &GetStaticMethods() const
-	{
-		return staticMethods;
-	}
-	Methods &GetMethods()
-	{
-		return methods;
-	}
-	Methods &GetStaticMethods()
-	{
-		return staticMethods;
-	}
-
-	//デフォルト コンストラクタ
-	const CMethod *GetConstructorMethod() const;
-	void SetConstructorMemberSubIndex( int constructorMemberSubIndex )
-	{
-		this->ConstructorMemberSubIndex = constructorMemberSubIndex;
-	}
-
-	//デストラクタ メソッドを取得
-	const CMethod *GetDestructorMethod() const;
-	void SetDestructorMemberSubIndex( int destructorMemberSubIndex )
-	{
-		this->DestructorMemberSubIndex = destructorMemberSubIndex;
-	}
-
-	// vtblに存在する仮想関数の数
-	int GetVtblNum() const
-	{
-		return vtblNum;
-	}
-	void SetVtblNum( int vtblNum )
-	{
-		this->vtblNum = vtblNum;
-	}
-	void AddVtblNum( int vtblNum )
-	{
-		this->vtblNum += vtblNum;
-	}
-	bool IsExistVirtualFunctions() const
-	{
-		return ( vtblNum > 0 );
-	}
-
-	// メンバの総合サイズを取得
-	int GetSize() const;
-
-	// メンバのオフセットを取得
-	int GetMemberOffset( const char *memberName, int *pMemberNum = NULL ) const;
-
-private:
-	// アラインメント値を取得
-	int GetAlignment() const;
-
-
-	//vtbl
-protected:
-	mutable long vtbl_offset;
-public:
-	int GetFuncNumInVtbl( const UserProc *pUserProc ) const;
-	virtual LONG_PTR GetVtblGlobalOffset(void) const = 0;
-	virtual void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection) = 0;
-	bool IsAbstract() const;
-
-
-	//コンストラクタをコンパイルしているかどうかのチェックフラグ
-private:
-	mutable bool isCompilingConstructor;
-public:
-	void NotifyStartConstructorCompile() const;
-	void NotifyFinishConstructorCompile() const;
-	bool IsCompilingConstructor() const;
-
-	//デストラクタをコンパイルしているかどうかのチェックフラグ
-private:
-	mutable bool isCompilingDestructor;
-public:
-	void NotifyStartDestructorCompile() const;
-	void NotifyFinishDestructorCompile() const;
-	bool IsCompilingDestructor() const;
-
-
-	//自身の派生クラスかどうかを確認
-	bool IsSubClass( const CClass *pClass ) const;
-
-	//自身と等しいまたは派生クラスかどうかを確認
-	bool IsEqualsOrSubClass( const CClass *pClass ) const;
-
-	// 自身と等しいまたは派生クラス、基底クラスかどうかを確認
-	bool IsEqualsOrSubClassOrSuperClass( const CClass &objClass ) const;
-
-
-	//線形リスト用
-	CClass *pobj_NextClass;
-
-
-public:
-	static bool SplitName( const char *desc, char *object, char *member, CClass::RefType &refType ){
-		int lastIndex = -1;
-		for( int i=0; desc[i]; i++ ){
-			if( desc[i] == '(' ){
-				i=JumpStringInPare(desc,i+1);
-				continue;
-			}
-			else if( desc[i] == '[' ){
-				i=JumpStringInBracket(desc,i+1);
-				continue;
-			}
-			else if(desc[i]=='.'||(desc[i]==1&&desc[i+1]==ESC_PSMEM)){
-				lastIndex = i;
-			}
-		}
-		if( lastIndex == -1 ){
-			lstrcpy( member, desc );
-			return false;
-		}
-
-		if(desc[lastIndex]=='.'){
-			lstrcpy(member,desc+lastIndex+1);
-			refType = CClass::Dot;
-		}
-		else{
-			lstrcpy(member,desc+lastIndex+2);
-			refType = CClass::Pointer;
-		}
-
-		if( object ){
-			lstrcpy( object, desc );
-			object[lastIndex]=0;
-		}
-
-		return true;
-	}
-	static bool SplitName( const char *desc, char *object, char *member ){
-		CClass::RefType dummyRefType;
-		return SplitName( desc, object, member, dummyRefType );
-	}
-};
-
-#define MAX_CLASS_HASH 65535
-class Classes
-{
-protected:
-	int GetHashCode(const char *name) const;
-	void DestroyClass(CClass *pobj_c);
-public:
-	CClass *pobj_ClassHash[MAX_CLASS_HASH];
-
-	Classes();
-	~Classes();
-	void Clear();
-
-	const CClass *Find( const string &fullName ) const;
-	virtual const CClass *Find( const NamespaceScopes &namespaceScopes, const string &name ) const = 0;
-
-	virtual CClass *Create( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name) = 0;
-	bool Insert( CClass *pClass );
-	CClass *Add( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name,int nowLine);
-
-	void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection);
-
-public:
-
-	// 実体収集
-	virtual void CollectClassesForNameOnly( const BasicSource &source ) = 0;
-	virtual void GetClass_recur(const char *lpszInheritsClass) = 0;
-	virtual void GetAllClassInfo() = 0;
-	virtual void Compile_System_InitializeUserTypes() = 0;
-	virtual void InitStaticMember() = 0;
-
-
-	/////////////////////////////
-	// 特殊クラス
-	/////////////////////////////
-	CClass *pStringClass;
-	CClass *pObjectClass;
-	CClass *GetStringClassPtr() const;
-	CClass *GetObjectClassPtr() const;
-
-
-	/////////////////////////////
-	// 現在コンパイル中の情報
-	/////////////////////////////
-private:
-	const CClass *pCompilingClass;
-	const CMethod *pCompilingMethod;
-public:
-	//コンパイル開始の通知を受け取るメソッド
-	void StartCompile( UserProc *pUserProc );
-
-	//現在コンパイル中のメソッド情報を取得
-	const CClass *GetNowCompilingClass() const;
-	const CMethod *GetNowCompilingMethodInfo();
-
-
-	/////////////////////
-	// イテレータ
-	/////////////////////
-private:
-	mutable CClass **ppobj_IteClass;
-	mutable int iIteMaxNum;
-	mutable int iIteNextNum;
-public:
-	void Iterator_Init() const;
-	void Iterator_Reset() const;
-	BOOL Iterator_HasNext() const;
-	CClass *Iterator_GetNext() const;
-	int Iterator_GetMaxCount() const;
-};
Index: trunk/jenga/include/smoothie/LexicalAnalysis.h
===================================================================
--- trunk/jenga/include/smoothie/LexicalAnalysis.h	(revision 203)
+++ trunk/jenga/include/smoothie/LexicalAnalysis.h	(revision 205)
@@ -1,3 +1,17 @@
 #pragma once
+
+#include <string>
+#include <vector>
+
+#include <windows.h>
+
+typedef std::vector<int> Subscripts;
+
+enum ReferenceKind
+{
+	RefNon = 0,		// no reference member
+	RefDot,			// obj.member
+	RefPointer,		// obj->member
+};
 
 bool IsVariableTopChar(char c);
@@ -13,3 +27,9 @@
 bool IsCommandDelimitation( char c );
 int GetStringInPare_RemovePare(char *buffer,const char *ReadBuffer);
-void GetArrange(char *variable,char *variAnswer,int *SubScripts);
+void GetArrange(char *variable,char *variAnswer, Subscripts &subscripts );
+bool SplitMemberName( const char *desc, char *object, char *member, ReferenceKind &refType );
+bool SplitMemberName( const char *desc, char *object, char *member );
+void GetCalcName(int idCalc,char *name);
+BYTE ToCalcId( const char *name );
+std::string Operator_NaturalStringToCalcMarkString( const std::string &name );
+std::string Operator_CalcMarkStringToNaturalString( const std::string &name );
Index: trunk/jenga/include/smoothie/LexicalScoping.h
===================================================================
--- trunk/jenga/include/smoothie/LexicalScoping.h	(revision 203)
+++ trunk/jenga/include/smoothie/LexicalScoping.h	(revision 205)
@@ -56,5 +56,5 @@
 
 	// スコープを終了
-	void End();
+	virtual void End() = 0;
 
 	// スコープを検索
Index: trunk/jenga/include/smoothie/Member.h
===================================================================
--- trunk/jenga/include/smoothie/Member.h	(revision 203)
+++ 	(revision )
@@ -1,94 +1,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include "Type.h"
-#include "Class.h"
-#include "Source.h"
-
-using namespace std;
-
-class CClass;
-
-class CMember : public MemberPrototype
-{
-	string name;
-	Type type;
-	bool isConst;
-
-	string initializeExpression;
-	string constructParameter;
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( MemberPrototype );
-		ar & BOOST_SERIALIZATION_NVP( name );
-		ar & BOOST_SERIALIZATION_NVP( type );
-		ar & BOOST_SERIALIZATION_NVP( isConst );
-		ar & BOOST_SERIALIZATION_NVP( initializeExpression );
-		ar & BOOST_SERIALIZATION_NVP( constructParameter );
-	}
-
-public:
-	int SubScripts[MAX_ARRAYDIM];
-
-	int source_code_address;
-
-	const string &GetName() const
-	{
-		return name;
-	}
-	void SetName( const string &name )
-	{
-		this->name = name;
-	}
-
-	Type GetType() const
-	{
-		return type;
-	}
-
-	bool IsConst()
-	{
-		return isConst;
-	}
-
-	const string &GetInitializeExpression() const
-	{
-		return initializeExpression;
-	}
-	const string &GetConstructParameter() const
-	{
-		return constructParameter;
-	}
-
-	CMember( Prototype::Accessibility accessibility, const string &name, const Type &newType, bool isConst, const string &initializeExpression, const string &constructParameter )
-		: MemberPrototype( accessibility )
-		, name( name )
-		, type( newType )
-		, isConst( isConst )
-		, initializeExpression( initializeExpression )
-		, constructParameter( constructParameter )
-	{
-	}
-	CMember::CMember(CMember &member)
-		: MemberPrototype( member.GetAccessibility() )
-		, name( member.GetName() )
-		, type( member.GetType() )
-		, isConst( member.IsConst() )
-	{
-		//SubScripts
-		memcpy(SubScripts,member.SubScripts,MAX_ARRAYDIM*sizeof(int));
-
-		//ソースコードの位置
-		source_code_address=member.source_code_address;
-	}
-	~CMember()
-	{
-	}
-};
-typedef std::vector<CMember *> Members;
Index: trunk/jenga/include/smoothie/Method.h
===================================================================
--- trunk/jenga/include/smoothie/Method.h	(revision 203)
+++ 	(revision )
@@ -1,168 +1,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include <windows.h>
-
-#include "Class.h"
-#include "Procedure.h"
-
-using namespace std;
-
-class UserProc;
-class CClass;
-void SetError();
-
-class CMethod : public MemberPrototype
-{
-
-	// XMLシリアライズ用
-	// TODO: xml実装
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( MemberPrototype );
-		//ar & BOOST_SERIALIZATION_NVP( pUserProc );
-	}
-
-public:
-	UserProc *pUserProc;
-
-	CMethod( UserProc *pUserProc, Prototype::Accessibility accessibility )
-		: MemberPrototype( accessibility )
-		, pUserProc( pUserProc )
-	{
-	}
-
-	virtual bool IsAbstract() const = 0;
-	virtual void Override() = 0;
-	virtual bool IsVirtual() const = 0;
-	virtual bool IsConst() const = 0;
-	virtual bool IsStatic() const = 0;
-	virtual const CClass *GetInheritsClassPtr() const = 0;
-	virtual void SetInheritsClassPtr( const CClass *pInheritsClass ) = 0;
-};
-
-class DynamicMethod : public CMethod
-{
-	bool isAbstract;
-	bool isVirtual;
-	bool isConst;
-	const CClass *pInheritsClass;
-
-	// XMLシリアライズ用
-	// TODO: xml実装
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( CMethod );
-		ar & BOOST_SERIALIZATION_NVP( isAbstract );
-		ar & BOOST_SERIALIZATION_NVP( isVirtual );
-		ar & BOOST_SERIALIZATION_NVP( isConst );
-		//ar & BOOST_SERIALIZATION_NVP( pInheritsClass );
-	}
-
-public:
-	DynamicMethod( UserProc *pUserProc, Prototype::Accessibility accessibility, bool isAbstract, bool isVirtual, bool isConst, const CClass *pInheritsClass = NULL )
-		: CMethod( pUserProc, accessibility )
-		, isAbstract( isAbstract )
-		, isVirtual( isVirtual )
-		, isConst( isConst )
-		, pInheritsClass( pInheritsClass )
-	{
-	}
-	DynamicMethod( const CMethod &method )
-		: CMethod( method.pUserProc, method.GetAccessibility() )
-		, isAbstract( method.IsAbstract() )
-		, isVirtual( method.IsVirtual() )
-		, isConst( method.IsConst() )
-		, pInheritsClass( method.GetInheritsClassPtr() )
-	{
-	}
-
-	virtual bool IsAbstract() const
-	{
-		return isAbstract;
-	}
-	virtual void Override()
-	{
-		isAbstract = false;
-	}
-	virtual bool IsVirtual() const
-	{
-		return isVirtual;
-	}
-	virtual bool IsConst() const
-	{
-		return isConst;
-	}
-	virtual bool IsStatic() const
-	{
-		return false;
-	}
-	virtual const CClass *GetInheritsClassPtr() const
-	{
-		return pInheritsClass;
-	}
-	virtual void SetInheritsClassPtr( const CClass *pInheritsClass )
-	{
-		this->pInheritsClass = pInheritsClass;
-	}
-};
-class StaticMethod : public CMethod
-{
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( CMethod );
-	}
-
-public:
-	StaticMethod( UserProc *pUserProc, Prototype::Accessibility accessibility )
-		: CMethod( pUserProc, accessibility )
-	{
-	}
-
-	virtual bool IsAbstract() const{SetError();return false;}
-	virtual void Override(){SetError();}
-	virtual bool IsVirtual() const{
-		return false;
-	}
-	virtual bool IsConst() const{SetError();return false;}
-	virtual bool IsStatic() const
-	{
-		return true;
-	}
-	virtual const CClass *GetInheritsClassPtr() const{SetError();return NULL;}
-	virtual void SetInheritsClassPtr( const CClass *pInheritsClass ){SetError();}
-};
-
-class Methods : public vector<CMethod *>
-{
-	// XMLシリアライズ用
-	// TODO: xml実装
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & boost::serialization::make_nvp("vector_CMethod", boost::serialization::base_object<vector<CMethod *>>(*this));
-	}
-
-public:
-	Methods();
-	~Methods();
-
-	//メンバ、メソッドの追加
-	void Add( UserProc *pUserProc, Prototype::Accessibility accessibility, bool isConst, bool isAbstract, bool isVirtual );
-	void AddStatic(UserProc *pUserProc,Prototype::Accessibility accessibility);
-
-	const CMethod *GetMethodPtr( UserProc *pUserProc ) const;
-	bool IsExist( const char *name ) const;
-	virtual void Enum( const char *methodName, vector<UserProc *> &subs ) const;
-	virtual void Enum( const BYTE idOperatorCalc, vector<UserProc *> &subs ) const;
-};
Index: trunk/jenga/include/smoothie/ObjectModule.h
===================================================================
--- trunk/jenga/include/smoothie/ObjectModule.h	(revision 203)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#pragma once
-
-#include "Namespace.h"
-#include "Procedure.h"
-#include "Class.h"
-
-// プロジェクト中に存在するメタ情報
-class Meta
-{
-	ProcPointers *pProcPointers;
-public:
-
-	Meta( ProcPointers *pNewProcPointers )
-		: pProcPointers( pNewProcPointers )
-	{
-	}
-	Meta()
-	{
-	}
-	~Meta()
-	{
-		delete pProcPointers;
-	}
-
-	// クラス
-	virtual Classes &GetClasses() = 0;
-	virtual void SetClasses( Classes *pClasses ) = 0;
-	virtual bool AutoWrite( const std::string &filePath ) = 0;
-
-	// 関数ポインタ
-	ProcPointers &GetProcPointers()
-	{
-		return *pProcPointers;
-	}
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-	}
-};
Index: trunk/jenga/include/smoothie/Parameter.h
===================================================================
--- trunk/jenga/include/smoothie/Parameter.h	(revision 203)
+++ 	(revision )
@@ -1,138 +1,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include "Type.h"
-#include "BasicFixed.h"
-
-class Parameter : public Type
-{
-	std::string varName;
-	bool isRef;
-	bool isArray;
-	int subScripts[MAX_ARRAYDIM];
-
-	const std::string initValue;
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Type );
-		ar & BOOST_SERIALIZATION_NVP( varName );
-		ar & BOOST_SERIALIZATION_NVP( isRef );
-		ar & BOOST_SERIALIZATION_NVP( isArray );
-		ar & BOOST_SERIALIZATION_NVP( subScripts );
-		ar & BOOST_SERIALIZATION_NVP( initValue );
-	}
-
-public:
-	Parameter( const std::string &varName, const Type &type, bool isRef = false, const std::string initValue = "" ):
-		Type( type ),
-		varName( varName ),
-		isRef( isRef ),
-		isArray( false ),
-		initValue( initValue )
-	{
-		subScripts[0] = -1;
-	}
-	Parameter( const Parameter &param ):
-		Type( param ),
-		varName( param.varName ),
-		isRef( param.isRef ),
-		isArray( false ),
-		initValue( param.initValue )
-	{
-		subScripts[0] = -1;
-		if( param.isArray ){
-			SetArray( param.subScripts );
-		}
-	}
-	~Parameter(){}
-
-	void SetArray( const int *pSubScripts ){
-		isArray = true;
-		memcpy( this->subScripts, pSubScripts, sizeof(int) * MAX_ARRAYDIM );
-	}
-
-	const std::string &GetVarName() const
-	{
-		return varName;
-	}
-
-	bool IsRef() const
-	{
-		return isRef;
-	}
-	bool IsArray(){
-		return isArray;
-	}
-	int *GetSubScriptsPtr(){
-		return subScripts;
-	}
-
-	const std::string &GetInitValue() const
-	{
-		return initValue;
-	}
-
-	bool Equals( const Parameter &param ) const
-	{
-		if( Type::Equals( param ) ){
-			return true;
-		}
-		else{
-
-			if( this->isRef && this->GetBasicType() == DEF_ANY &&
-				param.isRef == false && param.IsPointer()
-				||
-				this->isRef == false && this->IsPointer() &&
-				param.isRef && param.GetBasicType() == DEF_ANY ){
-					/* ByRef var As Any
-							と
-						var As VoidPtr
-						は同等
-					*/
-					return true;
-			}
-		}
-
-		return false;
-	}
-};
-
-class Parameters : public std::vector<Parameter *>
-{
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & boost::serialization::make_nvp("vector_Parameter", boost::serialization::base_object<vector<Parameter *>>(*this));
-	}
-
-public:
-
-	bool Equals( const Parameters &params ) const
-	{
-		if( this->size() != params.size() ){
-			return false;
-		}
-
-		int max = (int)this->size();
-		for( int i=0; i<max; i++ ){
-			if( !(*this)[i]->Equals( *params[i] ) ){
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	int GetMemorySize() const
-	{
-		return (int)this->size() * PTR_SIZE;
-	}
-};
Index: trunk/jenga/include/smoothie/Procedure.h
===================================================================
--- trunk/jenga/include/smoothie/Procedure.h	(revision 203)
+++ 	(revision )
@@ -1,390 +1,0 @@
-#pragma once
-
-#include "Parameter.h"
-#include "Variable.h"
-
-class CClass;
-class CMethod;
-
-class Procedure{
-public:
-	// 種類
-	enum Kind{
-		Sub,
-		Function,
-	};
-
-private:
-	string name;						// プロシージャ名
-
-	Kind kind;
-
-	bool isCdecl;
-	bool isUsing;
-
-protected:
-
-	// パラメータ
-	Parameters params;
-
-	// 戻り値の型
-	Type returnType;
-
-	// ソースコードの位置
-	int codePos;
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_NVP( name );
-		ar & BOOST_SERIALIZATION_NVP( kind );
-		ar & BOOST_SERIALIZATION_NVP( isCdecl );
-		ar & BOOST_SERIALIZATION_NVP( isUsing );
-		ar & BOOST_SERIALIZATION_NVP( params );
-		ar & BOOST_SERIALIZATION_NVP( returnType );
-		ar & BOOST_SERIALIZATION_NVP( codePos );
-	}
-
-public:
-	Procedure( const string &name, Kind kind, bool isCdecl ):
-	  name( name ),
-	  kind( kind ),
-	  isCdecl( isCdecl ),
-	  isUsing( false ),
-	  codePos( -1 )
-	{}
-	~Procedure(){
-		BOOST_FOREACH( Parameter *pParam, params ){
-			delete pParam;
-		}
-	}
-
-	const string &GetName() const
-	{
-		return name;
-	}
-
-	bool IsSub() const
-	{
-		return ( kind == Sub );
-	}
-	bool IsFunction() const
-	{
-		return ( kind == Function );
-	}
-
-	bool IsCdecl() const
-	{
-		return isCdecl;
-	}
-	void Using(){
-		isUsing = true;
-	}
-	bool IsUsing() const
-	{
-		return isUsing;
-	}
-
-	int GetCodePos() const
-	{
-		return codePos;
-	}
-
-	const Parameters &Params() const
-	{
-		return params;
-	}
-	const Type &ReturnType() const
-	{
-		return returnType;
-	}
-};
-
-class UserProc : public Procedure
-{
-public:
-	string _paramStr;
-
-protected:
-	bool isMacro;
-
-	// パラメータの追加情報
-	int secondParmNum;
-	Parameters realParams;
-	int realSecondParmNum;
-
-	// 親クラスと対応するメソッド
-	const CClass *pParentClass;
-	CMethod *pMethod;
-
-	// 各種フラグ
-	bool isExport;
-	bool isSystem;
-	bool isAutoGeneration;
-	bool isCompiled;
-
-	// XMLシリアライズ用
-	// TODO: xml実装（publicなクラスが残っている）
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure );
-		ar & BOOST_SERIALIZATION_NVP( _paramStr );
-		ar & BOOST_SERIALIZATION_NVP( secondParmNum );
-		ar & BOOST_SERIALIZATION_NVP( realParams );
-		ar & BOOST_SERIALIZATION_NVP( realSecondParmNum );
-		ar & BOOST_SERIALIZATION_NVP( pParentClass );
-		ar & BOOST_SERIALIZATION_NVP( pMethod );
-		ar & BOOST_SERIALIZATION_NVP( isExport );
-		ar & BOOST_SERIALIZATION_NVP( isSystem );
-		ar & BOOST_SERIALIZATION_NVP( isAutoGeneration );
-		ar & BOOST_SERIALIZATION_NVP( isCompiled );
-	}
-
-public:
-
-	UserProc( const string &name, Kind kind, bool isMacro, bool isCdecl, bool isExport ):
-	  Procedure( name, kind, isCdecl ),
-	  isMacro( isMacro ),
-	  pParentClass( NULL ),
-	  pMethod( NULL ),
-	  isExport( isExport ),
-	  isSystem( false ),
-	  isAutoGeneration( false ),
-	  isCompiled( false ),
-	  beginOpAddress( 0 ),
-	  endOpAddress( 0 )
-	{
-	}
-	~UserProc()
-	{
-		BOOST_FOREACH( Parameter *pParam, realParams ){
-			delete pParam;
-		}
-	}
-
-	string GetFullName() const;
-
-	bool IsMacro() const
-	{
-		return isMacro;
-	}
-
-	virtual bool SetParamsAndReturnType( const char *sourceOfParams, int nowLine, bool isStatic ) = 0;
-
-	int GetSecondParmNum() const
-	{
-		return secondParmNum;
-	}
-	const Parameters &RealParams() const
-	{
-		return realParams;
-	}
-	int GetRealSecondParmNum() const
-	{
-		return realSecondParmNum;
-	}
-
-	void SetParentClass( const CClass *pParentClass ){
-		this->pParentClass = pParentClass;
-	}
-	const CClass *GetParentClassPtr() const
-	{
-		return pParentClass;
-	}
-	const CClass &GetParentClass() const
-	{
-		return *pParentClass;
-	}
-	bool HasParentClass() const
-	{
-		return ( pParentClass != NULL );
-	}
-	void SetMethod( CMethod *pMethod ){
-		this->pMethod = pMethod;
-	}
-
-	void ExportOff(){
-		isExport = false;
-	}
-	bool IsExport() const
-	{
-		return isExport;
-	}
-	void ThisIsSystemProc(){
-		isSystem = true;
-	}
-	bool IsSystem() const
-	{
-		return isSystem;
-	}
-	void ThisIsAutoGenerationProc(){
-		isAutoGeneration = true;
-	}
-	bool IsAutoGeneration(){
-		return isAutoGeneration;
-	}
-	void CompleteCompile(){
-		isCompiled = true;
-	}
-	void KillCompileStatus(){
-		isCompiled = false;
-	}
-	bool IsCompiled() const
-	{
-		return isCompiled;
-	}
-	bool IsDestructor() const
-	{
-		return ( GetName()[0] == '~' );
-	}
-	bool IsVirtual() const;
-
-	// バイナリコードの位置
-	DWORD beginOpAddress;
-	DWORD endOpAddress;
-	int GetCodeSize() const
-	{
-		return endOpAddress - beginOpAddress;
-	}
-
-	virtual const NamespaceScopes &GetNamespaceScopes() const;
-	virtual const NamespaceScopesCollection &GetImportedNamespaces() const;
-	virtual bool IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const;
-
-	// ローカル変数
-	Variables localVars;
-
-	// TODO: 適切なコードへ直す
-	long id;
-
-
-	/////////////////////////////////////////////////////////////////
-	// コンパイル中の関数を管理
-	/////////////////////////////////////////////////////////////////
-private:
-	static UserProc *pCompilingUserProc;
-public:
-	static void CompileStartForGlobalArea(){
-		pCompilingUserProc = NULL;
-	}
-	static void CompileStartForUserProc( UserProc *pUserProc ){
-		pCompilingUserProc = pUserProc;
-	}
-	static bool IsGlobalAreaCompiling(){
-		return ( pCompilingUserProc == NULL );
-	}
-	static bool IsLocalAreaCompiling(){
-		return ( pCompilingUserProc != NULL );
-	}
-	static UserProc &CompilingUserProc(){
-		return *pCompilingUserProc;
-	}
-};
-
-class DllProc : public Procedure
-{
-	NamespaceScopes namespaceScopes;
-
-	string dllFileName;
-	string alias;
-	int lookupAddress;
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure );
-		ar & BOOST_SERIALIZATION_NVP( namespaceScopes );
-		ar & BOOST_SERIALIZATION_NVP( dllFileName );
-		ar & BOOST_SERIALIZATION_NVP( alias );
-		ar & BOOST_SERIALIZATION_NVP( lookupAddress );
-	}
-
-public:
-	// ハッシュリスト用
-	DllProc *pNextData;
-
-	DllProc( const NamespaceScopes &namespaceScopes, const string &name, Kind kind, bool isCdecl, const string &dllFileName, const string &alias ):
-	  Procedure( name, kind, isCdecl ),
-	  namespaceScopes( namespaceScopes ),
-	  dllFileName( dllFileName ),
-	  alias( alias ),
-	  lookupAddress( 0 ),
-	  pNextData( NULL )
-	{
-	}
-	~DllProc(){}
-
-	virtual bool IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const = 0;
-	bool IsEqualSymbol( const string &name ) const;
-
-	const NamespaceScopes &GetNamespaceScopes() const
-	{
-		return namespaceScopes;
-	}
-
-	virtual bool SetParamsAndReturnType( const char *sourceOfParams, int nowLine ) = 0;
-
-	const string &GetDllFileName() const
-	{
-		return dllFileName;
-	}
-	const string &GetAlias() const
-	{
-		return alias;
-	}
-
-	void SetLookupAddress( int lookupAddress ){
-		this->lookupAddress = lookupAddress;
-	}
-	int GetLookupAddress() const
-	{
-		return lookupAddress;
-	}
-
-};
-
-class ProcPointer : public Procedure
-{
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure );
-	}
-
-public:
-	ProcPointer( Kind kind ):
-	  Procedure( "", kind, false )
-	{
-	}
-	~ProcPointer(){}
-
-	virtual bool SetParamsAndReturnType( const char *sourceOfParams, int nowLine ) = 0;
-};
-class ProcPointers : public vector<ProcPointer *>
-{
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & boost::serialization::make_nvp("vector_ProcPointer", boost::serialization::base_object<vector<ProcPointer *>>(*this));
-	}
-
-public:
-	ProcPointers()
-	{
-	}
-	~ProcPointers()
-	{
-	}
-
-	virtual int Add( const string &typeExpression ) = 0;
-};
Index: trunk/jenga/include/smoothie/Prototype.h
===================================================================
--- trunk/jenga/include/smoothie/Prototype.h	(revision 203)
+++ 	(revision )
@@ -1,120 +1,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include <jenga/include/common/BoostXmlSupport.h>
-
-#include "Symbol.h"
-
-using namespace std;
-
-class CMethod;
-class UserProc;
-
-class Prototype : public Symbol
-{
-public:
-	enum Accessibility{
-		None,
-		Private,
-		Protected,
-		Public,
-	};
-
-private:
-	mutable bool isUsing;
-
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Symbol );
-	}
-
-
-public:
-
-	Prototype( const NamespaceScopes &namespaceScopes, const string &name )
-		: Symbol( namespaceScopes, name )
-		, isUsing( false )
-	{
-	}
-	Prototype()
-		: Symbol()
-	{
-	}
-	~Prototype()
-	{
-	}
-
-	//自身と等しいかどうかを確認
-	bool IsEquals( const Prototype *prototype ) const
-	{
-		if( this == prototype ){
-			return true;
-		}
-		return false;
-	}
-
-	// シンボル比較
-	virtual bool IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const = 0;
-	bool IsEqualSymbol( const Prototype &prototype ) const;
-	bool IsEqualSymbol( const string &name ) const;
-
-	// 利用状況
-	bool IsUsing() const
-	{
-		return isUsing;
-	}
-	void Using() const
-	{
-		isUsing = true;
-	}
-};
-
-class MemberPrototype
-{
-	Prototype::Accessibility accessibility;
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_NVP( accessibility );
-	}
-
-public:
-	MemberPrototype( Prototype::Accessibility accessibility )
-		: accessibility( accessibility )
-	{
-	}
-
-	Prototype::Accessibility GetAccessibility() const
-	{
-		return accessibility;
-	}
-	void SetAccessibility( Prototype::Accessibility accessibility ){
-		this->accessibility = accessibility;
-	}
-
-	bool IsNoneAccess() const
-	{
-		return ( accessibility == Prototype::None );
-	}
-	bool IsPrivate() const
-	{
-		return ( accessibility == Prototype::Private );
-	}
-	bool IsProtected() const
-	{
-		return ( accessibility == Prototype::Protected );
-	}
-	bool IsPublic() const
-	{
-		return ( accessibility == Prototype::Public );
-	}
-};
Index: trunk/jenga/include/smoothie/Smoothie.h
===================================================================
--- trunk/jenga/include/smoothie/Smoothie.h	(revision 203)
+++ trunk/jenga/include/smoothie/Smoothie.h	(revision 205)
@@ -2,5 +2,4 @@
 
 #include "Source.h"
-#include "ObjectModule.h"
 #include "LexicalScoping.h"
 
@@ -27,7 +26,4 @@
 	class Temp{
 	public:
-		// コンパイル中のクラス
-		static const CClass *pCompilingClass;
-
 		// レキシカルスコープの状態
 		static CLexicalScopes *pLexicalScopes;
Index: trunk/jenga/include/smoothie/Source.h
===================================================================
--- trunk/jenga/include/smoothie/Source.h	(revision 203)
+++ trunk/jenga/include/smoothie/Source.h	(revision 205)
@@ -7,5 +7,6 @@
 #include <stdlib.h>
 
-#include "BasicFixed.h"
+#include <jenga/include/common/Exception.h>
+#include <jenga/include/smoothie/BasicFixed.h>
 
 using namespace std;
@@ -100,5 +101,5 @@
 		if( index>GetLength() )
 		{
-			throw "bad access";
+			Jenga::Throw( "BasicSource bad access" );
 		}
 		return buffer[2+index];
Index: trunk/jenga/include/smoothie/Symbol.h
===================================================================
--- trunk/jenga/include/smoothie/Symbol.h	(revision 203)
+++ 	(revision )
@@ -1,46 +1,0 @@
-#pragma once
-
-#include <vector>
-#include <string>
-
-#include <jenga/include/common/BoostXmlSupport.h>
-
-#include "Namespace.h"
-
-using namespace std;
-
-class Symbol
-{
-	NamespaceScopes namespaceScopes;
-	string name;
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_NVP( namespaceScopes );
-		ar & BOOST_SERIALIZATION_NVP( name );
-	}
-
-public:
-	Symbol( const NamespaceScopes &namespaceScopes, const string &name )
-		: namespaceScopes( namespaceScopes )
-		, name( name )
-	{
-	}
-	Symbol( const char *fullName );
-	Symbol( const string &fullName );
-	Symbol()
-	{
-	}
-
-	const NamespaceScopes &GetNamespaceScopes() const
-	{
-		return namespaceScopes;
-	}
-	const string &GetName() const
-	{
-		return name;
-	}
-};
Index: trunk/jenga/include/smoothie/Type.h
===================================================================
--- trunk/jenga/include/smoothie/Type.h	(revision 203)
+++ 	(revision )
@@ -1,219 +1,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include <boost/foreach.hpp>
-
-#include <jenga/include/common/BoostXmlSupport.h>
-
-#include <windows.h>
-#include "BasicFixed.h"
-
-class CClass;
-
-class Type{
-	int basicType;
-	union{
-		LONG_PTR index;
-		const CClass *pClass;
-	};
-
-	// XMLシリアライズ用
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_NVP( basicType );
-		if( HasMember() )
-		{
-			ar & boost::serialization::make_nvp("pClass", const_cast<CClass *&>(pClass));
-		}
-		else
-		{
-			ar & BOOST_SERIALIZATION_NVP( index );
-		}
-	}
-
-public:
-	static int GetBasicSize( int basicType );
-
-	Type():
-	  basicType( DEF_NON ),
-	  index( -1 ){}
-	Type( int basicType ):
-	  basicType( basicType ),
-	  index( -1 ){}
-
-	Type( int basicType, LONG_PTR index ):
-	  basicType( basicType ),
-	  index( index ){}
-
-	Type( int basicType, const CClass &objClass ):
-	  basicType( basicType ),
-	  index( (LONG_PTR)&objClass ){}
-
-	Type( const Type &type ):
-	  basicType( type.basicType ),
-	  index( type.index ){}
-
-	__inline int GetBasicType() const
-	{
-		return basicType;
-	}
-	LONG_PTR GetIndex() const
-	{
-		return index;
-	}
-	const CClass &GetClass() const
-	{
-		return *pClass;
-	}
-
-	void SetBasicType( int basicType ){
-		this->basicType = basicType;
-	}
-	void SetIndex( LONG_PTR index ){
-		this->index = index;
-	}
-	void SetClassPtr( const CClass *pClass )
-	{
-		this->pClass = pClass;
-	}
-	void SetNull(){
-		SetBasicType( DEF_NON );
-		SetIndex( -1 );
-	}
-	void SetType( int basicType, LONG_PTR index ){
-		SetBasicType( basicType );
-		SetIndex( index );
-	}
-	void SetType( int basicType, const CClass *pClass ){
-		SetBasicType( basicType );
-		this->pClass = pClass;
-	}
-
-	int PtrLevel() const
-	{
-		return PTR_LEVEL( basicType );
-	}
-	void PtrLevelUp(){
-		PTR_LEVEL_UP( basicType );
-	}
-	void PtrLevelDown(){
-		PTR_LEVEL_DOWN( basicType );
-	}
-
-	bool Equals( const Type &type ) const;
-
-	int GetBasicSize() const;
-	int GetSize() const;
-
-	bool IsNull() const;
-
-	bool IsByte() const;
-	bool IsSByte() const;
-	bool IsWord() const;
-	bool IsInteger() const;
-	bool IsDWord() const;
-	bool IsLong() const;
-	bool IsQWord() const;
-	bool IsInt64() const;
-	bool IsSingle() const;
-	bool IsDouble() const;
-	bool IsBoolean() const;
-
-	static bool IsPointer( int basicType );
-	bool IsPointer() const;
-	bool IsSigned() const;
-	bool IsNaturalWhole() const;
-	bool IsWhole() const;
-	bool IsReal() const;
-	bool Is64() const;
-	bool IsProcPtr() const;
-	bool IsStruct() const;
-	bool IsStructPtr() const;
-	bool IsObject() const;
-	bool IsObjectPtr() const;
-	bool IsObjectClass() const;
-	bool IsStringClass() const;
-	bool IsVoidPtr() const;
-	bool IsAny() const;
-
-	// オブジェクトや構造体など、メンバを持つ型かどうかを判別する
-	bool HasMember() const;
-
-	void operator= ( const Type &type ){
-		basicType = type.basicType;
-		index = type.index;
-	}
-
-
-private:
-	static const int basicTypeList[];
-	static const std::string basicTypeNameList[];
-public:
-	static bool StringToBasicType( const std::string &typeName, int &basicType );
-	static const char *Type::BasicTypeToCharPtr( const Type &type );
-	static int GetBasicTypeFromSimpleName( const char *variable );
-};
-
-class BlittableType
-{
-	Type basicType;
-	CClass *pClass;
-public:
-	BlittableType( const Type &basicType, CClass *pClass )
-		: basicType( basicType )
-		, pClass( pClass )
-	{
-	}
-	BlittableType(){}
-	const Type &GetBasicType() const
-	{
-		return basicType;
-	}
-	const CClass *GetClassPtr() const
-	{
-		return pClass;
-	}
-	const std::string GetCreateStaticMethodFullName() const;
-};
-class BlittableTypes : public std::vector<BlittableType>
-{
-public:
-	bool IsExist( Type type ) const
-	{
-		const BlittableTypes &blittableTypes = *this;
-		BOOST_FOREACH( const BlittableType &blittableType, blittableTypes ){
-			if( blittableType.GetBasicType().Equals( type ) ){
-				return true;
-			}
-		}
-		return false;
-	}
-	const BlittableType &Find( const Type &type ) const
-	{
-		const BlittableTypes &blittableTypes = *this;
-		BOOST_FOREACH( const BlittableType &blittableType, blittableTypes ){
-			if( blittableType.GetBasicType().Equals( type ) ){
-				return blittableType;
-			}
-		}
-		throw "Blittable型ではない";
-	}
-	const CClass *GetClassPtr( const Type &type ) const
-	{
-		const BlittableTypes &blittableTypes = *this;
-		BOOST_FOREACH( const BlittableType &blittableType, blittableTypes ){
-			if( blittableType.GetBasicType().Equals( type ) ){
-				return blittableType.GetClassPtr();
-			}
-		}
-		return NULL;
-	}
-	const CClass &GetClass( const Type &type ) const
-	{
-		return *GetClassPtr( type );
-	}
-};
Index: trunk/jenga/include/smoothie/Variable.h
===================================================================
--- trunk/jenga/include/smoothie/Variable.h	(revision 203)
+++ 	(revision )
@@ -1,198 +1,0 @@
-#pragma once
-
-#include "Type.h"
-#include "Symbol.h"
-
-class Variable : public Type
-{
-	NamespaceScopes namespaceScopes;
-	string name;
-	bool isConst;
-	bool isRef;
-	bool isArray;
-	int subScripts[MAX_ARRAYDIM];
-
-	bool isParameter;
-
-	// XMLシリアライズ用
-	// TODO: xml実装（publicなクラスが残っている）
-private:
-	friend class boost::serialization::access;
-	template<class Archive> void serialize(Archive& ar, const unsigned int version)
-	{
-		ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Type );
-		ar & BOOST_SERIALIZATION_NVP( namespaceScopes );
-		ar & BOOST_SERIALIZATION_NVP( name );
-		ar & BOOST_SERIALIZATION_NVP( isConst );
-		ar & BOOST_SERIALIZATION_NVP( isRef );
-		ar & BOOST_SERIALIZATION_NVP( isArray );
-		ar & BOOST_SERIALIZATION_NVP( subScripts );
-		ar & BOOST_SERIALIZATION_NVP( isParameter );
-	}
-
-public:
-	Variable( const string &name, const Type &type, bool isConst = false, bool isRef = false )
-		: Type( type )
-		, name( name )
-		, isConst( isConst )
-		, isRef( isRef )
-		, isArray( false )
-		, isParameter( false)
-	{
-		subScripts[0] = -1;
-	}
-	Variable( const NamespaceScopes &namespaceScopes, const string &name, const Type &type, bool isConst = false, bool isRef = false )
-		: namespaceScopes( namespaceScopes )
-		, Type( type )
-		, name( name )
-		, isConst( isConst )
-		, isRef( isRef )
-		, isArray( false )
-		, isParameter( false)
-	{
-		subScripts[0] = -1;
-	}
-	Variable( const Variable &var )
-		: Type( var )
-		, name( var.name )
-		, isConst( var.isConst )
-		, isRef( var.isRef )
-		, isArray( false )
-		, isParameter( false )
-	{
-		subScripts[0] = -1;
-		if( var.isArray ){
-			SetArray( var.subScripts );
-		}
-	}
-	~Variable(){}
-
-	const NamespaceScopes &GetNamespaceScopes() const
-	{
-		return namespaceScopes;
-	}
-
-	void SetArray( const int *pSubScripts ){
-		isArray = true;
-		memcpy( this->subScripts, pSubScripts, sizeof(int) * MAX_ARRAYDIM );
-	}
-
-	const string &GetName() const
-	{
-		return name;
-	}
-
-	virtual bool IsEqualSymbol( const Symbol &symbol, bool isSupportStaticMember = true ) const = 0;
-
-	void ConstOff(){
-		isConst = false;
-	}
-	void ConstOn(){
-		isConst = true;
-	}
-	bool IsConst() const
-	{
-		return isConst;
-	}
-	bool IsRef() const
-	{
-		return isRef;
-	}
-	bool IsArray()const
-	{
-		return isArray;
-	}
-	const int *GetSubScriptsPtr() const
-	{
-		return subScripts;
-	}
-
-	void ThisIsParameter(){
-		isParameter = true;
-	}
-	bool IsParameter() const
-	{
-		return isParameter;
-	}
-
-
-	int GetMemorySize() const
-	{
-		if( isRef || isParameter ){
-			return PTR_SIZE;
-		}
-
-		int size = Type::GetSize();
-
-		if( isArray ){
-			int num = 1;
-			for( int i=0; i<MAX_ARRAYDIM; i++){
-				if(subScripts[i]==-1) break;
-				num *= subScripts[i]+1;
-			}
-			size *= num;
-		}
-
-		if( size % PTR_SIZE ){
-			size += PTR_SIZE-(size%PTR_SIZE);
-		}
-
-		return size;
-	}
-
-
-	/* --- オフセット ---
-
-		※グローバル変数で初期バッファがない場合は最上位ビットに1がセットされ、
-		初期バッファの有無が識別される。
-		（その後、スケジュール実行により、実際の配置に並び替えられる）*/
-	int offset;
-
-	//コンストラクタ用パラメータ
-	string paramStrForConstructor;
-
-	//レキシカルスコープ用
-	int ScopeStartAddress;
-	int ScopeEndAddress;
-	int ScopeLevel;
-	BOOL bLiving;
-
-
-	int source_code_address;
-
-
-	static int GetSubScriptCounts(const int *ss){
-		// 配列の要素数を取得
-		int i,i2;
-		for(i=0,i2=1;i<255;i++){
-			if(ss[i]==-1) break;
-			i2*=ss[i]+1;
-		}
-		return i2;
-	}
-};
-
-class Variables : public vector<Variable *>
-{
-public:
-	Variables(){}
-	~Variables(){
-		clear();
-	}
-
-	void clear(){
-		for( int i=0; i<(int)this->size(); i++ ){
-			delete (*this)[i];
-		}
-
-		vector<Variable *>::clear();
-	}
-
-	bool DuplicateCheck( const Symbol &symbol ) const;
-
-	const Variable *BackSearch( const Symbol &symbol ) const;
-
-	const Variable *Find( const Symbol &symbol )const;
-};
-
-extern Variables globalVars;
