Index: /trunk/ab5.0/jenga/include/common/Binaly.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/Binaly.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/Binaly.h	(revision 441)
@@ -0,0 +1,170 @@
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include <memory.h>
+#include <windows.h>
+
+#define JENGA_SERIALIZER(param) ( isRead?(binaly.Read(param)):(binaly << param) );
+
+class MemoryBlock
+{
+	int base;
+	int size;
+public:
+	MemoryBlock( int base, int size )
+		: base( base )
+		, size( size )
+	{
+	}
+	int GetBase() const
+	{
+		return base;
+	}
+	int GetSize() const
+	{
+		return size;
+	}
+};
+class Binaly
+{
+	static const int alignment = 1024 * 1024;
+
+	unsigned char *pBuffer;
+	int size;
+	int maxSize;
+
+	std::vector<MemoryBlock> memoryBlocks;
+	int indexOfMemoryBlocks;
+
+	// 初期化
+	void Initialize()
+	{
+		maxSize = alignment;
+		pBuffer = (unsigned char *)calloc( maxSize, 1 );
+		size = 0;
+
+		memoryBlocks.clear();
+		indexOfMemoryBlocks = 0;
+	}
+
+	// メモリ領域の再確保
+	void Allocator( int newSize )
+	{
+		size = newSize;
+
+		if( maxSize > newSize )
+		{
+			// 確保済みメモリのサイズがあまっているとき
+			return;
+		}
+
+		while( maxSize <= newSize )
+		{
+			maxSize += alignment;
+		}
+		pBuffer = (unsigned char *)realloc( pBuffer, maxSize );
+	}
+	void AddMemorySize( int plusSize )
+	{
+		Allocator( size + plusSize );
+	}
+	void ReadMemoryCheck( int readSize )
+	{
+		if( (int)memoryBlocks.size() < indexOfMemoryBlocks )
+		{
+			throw "bad memory access";
+		}
+
+		if( memoryBlocks[indexOfMemoryBlocks].GetSize() != readSize )
+		{
+			throw "bad memory access";
+		}
+	}
+
+public:
+	Binaly( const Binaly &binaly )
+	{
+		Initialize();
+	}
+	Binaly( const unsigned char *pNewBuffer, int size )
+	{
+		Initialize();
+	}
+	Binaly()
+	{
+		Initialize();
+	}
+	~Binaly()
+	{
+		free( pBuffer );
+	}
+
+	void Clear()
+	{
+		free( pBuffer );
+		Initialize();
+	}
+
+	void Add( const unsigned char *pBufferOfBlock, int sizeOfBlock )
+	{
+		int base = this->size;
+		AddMemorySize( sizeOfBlock );
+		memcpy( pBuffer + base, pBufferOfBlock, sizeOfBlock );
+
+		memoryBlocks.push_back( MemoryBlock( base, sizeOfBlock ) );
+	}
+	void operator<< ( int i )
+	{
+		Add( (const unsigned char *)&i, sizeof(int) );
+	}
+	void operator<< ( double dbl )
+	{
+		Add( (const unsigned char *)&dbl, sizeof(double) );
+	}
+	void operator<< ( bool b )
+	{
+		Add( (const unsigned char *)&b, sizeof(bool) );
+	}
+	void operator<< ( const std::string &str )
+	{
+		Add( (const unsigned char *)str.c_str(), (int)str.size() );
+	}
+	void operator<< ( const char *lpszStr )
+	{
+		Add( (const unsigned char *)lpszStr, lstrlen(lpszStr) );
+	}
+
+	int GetNextSizeToReading()
+	{
+		return memoryBlocks[indexOfMemoryBlocks].GetSize();
+	}
+	void Read( unsigned char *pBuffer, int readSize )
+	{
+		ReadMemoryCheck( readSize );
+
+		memcpy(
+			pBuffer,
+			this->pBuffer + memoryBlocks[indexOfMemoryBlocks].GetBase(),
+			memoryBlocks[indexOfMemoryBlocks].GetSize()
+		);
+
+		indexOfMemoryBlocks++;
+	}
+	void Read( int &i )
+	{
+		Read( (unsigned char *)&i, sizeof(int) );
+	}
+	void Read( bool &b )
+	{
+		Read( (unsigned char *)&b, sizeof(bool) );
+	}
+	void Read( std::string &str )
+	{
+		str = std::string(
+			(const char *)pBuffer + memoryBlocks[indexOfMemoryBlocks].GetBase(),
+			memoryBlocks[indexOfMemoryBlocks].GetSize()
+		);
+	}
+};
Index: /trunk/ab5.0/jenga/include/common/CmdLine.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/CmdLine.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/CmdLine.h	(revision 441)
@@ -0,0 +1,38 @@
+#include <vector>
+#include <string>
+
+
+namespace Jenga{
+namespace Common{
+
+
+class CmdLine{
+	std::string command;
+	std::string parameter;
+public:
+
+	CmdLine( const std::string &command, const std::string &parameter )
+		: command( command )
+		, parameter( parameter )
+	{
+	}
+
+	const std::string& GetCommand() const
+	{
+		return command;
+	}
+	const std::string& GetParameter() const
+	{
+		return parameter;
+	}
+};
+
+class CmdLines : public std::vector<CmdLine>
+{
+public:
+	CmdLines( const std::string &strCmdLine );
+	bool IsExist( const std::string &commandString ) const;
+};
+
+
+}}
Index: /trunk/ab5.0/jenga/include/common/Directory.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/Directory.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/Directory.h	(revision 441)
@@ -0,0 +1,31 @@
+#pragma once
+#pragma warning(disable : 4996)
+
+#include <vector>
+#include <string>
+
+#include <stdlib.h>
+
+#include <windows.h>
+
+
+namespace Jenga{
+namespace Common{
+
+using namespace std;
+
+class Directory
+{
+	string path;
+public:
+	Directory( const string &path, bool isMake = false );
+
+	string GetFullPath( const string &relationPath );
+
+	string GetRelationalPath( const string &fullPath )
+	{
+	}
+};
+
+
+}}
Index: /trunk/ab5.0/jenga/include/common/Environment.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/Environment.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/Environment.h	(revision 441)
@@ -0,0 +1,42 @@
+#pragma once
+#pragma warning(disable : 4996)
+
+#include <vector>
+#include <string>
+
+#include <stdlib.h>
+
+#include <windows.h>
+
+
+namespace Jenga{
+namespace Common{
+
+
+class Environment
+{
+public:
+	static const std::string &GetAppDir()
+	{
+		static std::string appDir;
+		if( appDir.size() == 0 )
+		{
+			char temporary[MAX_PATH];
+			char temp2[MAX_PATH];
+			char temp3[MAX_PATH];
+			GetModuleFileName(GetModuleHandle(0),temporary,MAX_PATH);
+			_splitpath(temporary,temp2,temp3,NULL,NULL);
+			if( temp3[lstrlen(temp3)-1]=='\\' )
+			{
+				temp3[lstrlen(temp3)-1] = 0;
+			}
+			lstrcat(temp2,temp3);
+
+			appDir = temp2;
+		}
+		return appDir;
+	}
+};
+
+
+}}
Index: /trunk/ab5.0/jenga/include/common/Exception.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/Exception.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/Exception.h	(revision 441)
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <string>
+
+
+namespace Jenga{
+
+
+void Throw( const std::string &message );
+
+
+}
Index: /trunk/ab5.0/jenga/include/common/File.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/File.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/File.h	(revision 441)
@@ -0,0 +1,48 @@
+#pragma once
+#pragma warning(disable : 4996)
+
+#include <vector>
+#include <string>
+
+#include <stdlib.h>
+#include <windows.h>
+
+#include <jenga/include/common/Exception.h>
+
+
+namespace Jenga{
+namespace Common{
+
+
+class File
+{
+	const std::string filePath;
+public:
+	File( const std::string &filePath )
+		: filePath( filePath )
+	{
+	}
+
+	std::string Read()
+	{
+		HANDLE hFile = CreateFile( filePath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
+		if( hFile == INVALID_HANDLE_VALUE )
+		{
+			Jenga::Throw( filePath + " がオープンできません" );
+		}
+		int size = GetFileSize( hFile, NULL );
+
+		char *temp = static_cast<char *>(calloc( size + 1, 1 ));
+		DWORD dummy;
+		ReadFile( hFile, temp, size, &dummy, NULL );
+		CloseHandle(hFile);
+
+		std::string result = temp;
+		free( temp );
+
+		return result;
+	}
+};
+
+
+}}
Index: /trunk/ab5.0/jenga/include/common/Path.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/Path.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/Path.h	(revision 441)
@@ -0,0 +1,67 @@
+#pragma once
+#pragma warning(disable : 4996)
+
+#include <vector>
+#include <string>
+
+#include <stdlib.h>
+
+
+namespace Jenga{
+namespace Common{
+
+
+class Path
+{
+	std::string fullPath;
+	std::string driveName;
+	std::string dirName;
+	std::string fileName;
+	std::string ext;
+
+	void Expand()
+	{
+		char szDrive[32], szDir[1024], szFile[1024], szExt[255];
+		_splitpath_s( fullPath.c_str(), szDrive, 32, szDir, 1024, szFile, 1024, szExt, 255 );
+		driveName = szDrive;
+		dirName = szDir;
+		fileName = szFile;
+		ext = szExt;
+	}
+
+public:
+	Path( const std::string &fullPath )
+		: fullPath( fullPath )
+	{
+		Expand();
+	}
+	~Path()
+	{
+	}
+
+	bool IsExistFile() const;
+
+	const std::string &GetDriveName() const
+	{
+		return driveName;
+	}
+	const std::string &GetDirName() const
+	{
+		return dirName;
+	}
+	const std::string &GetFileName() const
+	{
+		return fileName;
+	}
+	const std::string &GetExt() const
+	{
+		return ext;
+	}
+	const std::string &GetFullPath() const
+	{
+		return fullPath;
+	}
+};
+
+
+}}
Index: /trunk/ab5.0/jenga/include/common/String.h
===================================================================
--- /trunk/ab5.0/jenga/include/common/String.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/common/String.h	(revision 441)
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <vector>
+#include <string>
+
+namespace Jenga{
+namespace Common{
+
+typedef std::vector<std::string> Strings;
+
+}
+}
Index: /trunk/ab5.0/jenga/include/smoothie/BasicFixed.h
===================================================================
--- /trunk/ab5.0/jenga/include/smoothie/BasicFixed.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/smoothie/BasicFixed.h	(revision 441)
@@ -0,0 +1,220 @@
+//BasicFixed.h
+
+
+#define MAX_ARRAYDIM	16
+#define PTR_SIZE		sizeof(LONG_PTR)
+#define VN_SIZE			1024
+#define MAX_LEN			65535
+
+
+////////////////
+// マシンタイプ
+////////////////
+
+#define MACHINE_X86		1
+#define MACHINE_AMD64	2
+
+
+////////////////
+// 型
+////////////////
+
+#define DEF_NON			-1
+
+/* basic\command.sbp内の "_System_Type_***" 定数と同期が必要 */
+#define FLAG_PTR		0x80000000
+#define FLAG_CAST		0x40000000
+
+//整数型
+#define DEF_SBYTE		0x00000001
+#define DEF_BYTE		0x00000002
+#define DEF_INTEGER		0x00000003
+#define DEF_WORD		0x00000004
+#define DEF_LONG		0x00000005
+#define DEF_DWORD		0x00000006
+#define DEF_INT64		0x00000007
+#define DEF_QWORD		0x00000008
+
+//実数型
+#define DEF_SINGLE		0x00000009
+#define DEF_DOUBLE		0x0000000A
+
+//文字型
+#define DEF_CHAR		0x0000000B
+
+//bool型
+#define DEF_BOOLEAN		0x0000000C
+
+//文字列型
+#define DEF_STRING		0x0000000D
+
+//ポインタ型
+#define DEF_PTR_VOID	0x0000000E
+#define DEF_PTR_PROC	0x0000000F
+
+//特殊型
+#define DEF_ANY						0x00000015
+#define DEF_ELLIPSE					0x00000016
+#define DEF_OBJECT					0x00000017		// クラス
+#define DEF_STRUCT					0x00000018		// 構造体
+#define DEF_TYPE_PARAMETER			0x00000019		// 型パラメータ（ジェネリクスサポート）
+
+//ポインタ型
+#define MASK_PTR		0x0000ff00
+#define MASK_NATURAL	0x000000ff
+
+#define PTR_LEVEL(t)	(((t)&MASK_PTR)>>8)
+#define NATURAL_TYPE(t)	((t)&MASK_NATURAL)
+#define MAKE_PTR_TYPE(t,p)	((t)|((p)<<8))
+#define PTR_LEVEL_UP(t)		t = MAKE_PTR_TYPE(NATURAL_TYPE(t),PTR_LEVEL(t)+1)
+#define PTR_LEVEL_DOWN(t)	t = MAKE_PTR_TYPE(NATURAL_TYPE(t),PTR_LEVEL(t)-1)
+
+#define DEF_PTR_OBJECT	MAKE_PTR_TYPE(DEF_OBJECT,1)
+#define DEF_PTR_STRUCT	MAKE_PTR_TYPE(DEF_STRUCT,1)
+
+
+
+//NumOpe関数の結果がリテラル値の場合、その値の補助情報がindexに格納される
+#define LITERAL_NULL		-2
+#define LITERAL_M128_0		-3
+#define LITERAL_0_255		-4
+#define LITERAL_M32768_0	-5
+#define LITERAL_0_65535		-6
+#define LITERAL_OTHER_MINUS	-7
+#define LITERAL_OTHER_PLUS	-8
+
+#define LITERAL_STRING		-9
+
+#define IS_LITERAL(x) (x<=LITERAL_NULL&&x!=LITERAL_STRING)
+#define IS_MINUS_LITERAL(x) (x==LITERAL_M128_0||x==LITERAL_M32768_0||x==LITERAL_OTHER_MINUS)
+#define IS_POSITIVE_LITERAL(x) (x==LITERAL_NULL||x==LITERAL_0_255||x==LITERAL_0_65535||x==LITERAL_OTHER_PLUS)
+
+//////////////////////////////////////
+/* 演算子（優先順位が関係している） */
+//////////////////////////////////////
+
+//論理演算子
+#define CALC_XOR			3	// Xor
+#define CALC_OR				6	// Or
+#define CALC_AND			9	// And
+#define CALC_NOT			12	// Not
+
+//比較演算子
+#define CALC_PE				21	// <=
+#define CALC_QE				22	// >=
+#define CALC_NOTEQUAL		23	// <>
+#define CALC_EQUAL			24	// =
+#define CALC_P				25	// <
+#define CALC_Q				26	// >
+
+//算術演算子
+#define CALC_SHL			31	//<<
+#define CALC_SHR			32	//>>
+#define CALC_ADDITION		41	// +
+#define CALC_SUBTRACTION	42	// -
+#define CALC_STRPLUS		43	// &
+#define CALC_MOD			51	// Mod
+#define CALC_PRODUCT		61	// *
+#define CALC_QUOTIENT		62	// /
+#define CALC_INTQUOTIENT	63	//整数除算
+#define CALC_AS				71	// As
+#define CALC_BYVAL			72	// ByVal
+#define CALC_MINUSMARK		81	// -x
+#define CALC_POWER			91	// ^
+
+//代入演算子
+#define CALC_SUBSITUATION	200
+
+//添え字演算子
+#define CALC_ARRAY_GET		201
+#define CALC_ARRAY_SET		202
+
+
+
+//プロシージャの種類
+#define PROC_DEFAULT	1	// ユーザー定義関数
+#define PROC_DLL		2	// DLL関数
+#define PROC_BUILTIN	3	// コンパイラ埋め込み型
+#define PROC_PTR		4	// 関数ポインタ
+#define PROC_DELEGATE	5	// デリゲート
+
+
+
+//////////////////////////////////////////////////////////////////////
+// エスケープシーケンス用のバイトコードは0xA0～0xCFの範囲も利用できる
+//////////////////////////////////////////////////////////////////////
+
+//以下制御用エスケープシーケンス
+#define ESC_MOD				'1'		// MOD 演算子
+#define ESC_AND				'&'		// AND 演算子
+#define ESC_OR				'3'		// OR 演算子
+#define ESC_XOR				'4'		// XOR 演算子
+#define ESC_NOT				'5'		// NOT 演算子
+#define ESC_AS				'6'		// AS（区切り文字）
+#define ESC_THEN			2		// Then
+#define ESC_ELSE			3		// Else
+#define ESC_IF				'A'		// If
+#define ESC_ELSEIF			'B'		// ElseIf
+#define ESC_ENDIF			'C'		// End If
+#define ESC_DEF				'D'		// Def
+#define ESC_DECLARE			'E'		// Declare
+#define ESC_SUB				'F'		// Sub
+#define ESC_ENDSUB			'G'		// End Sub
+#define ESC_EXITSUB			'H'		// Exit Sub
+#define ESC_FUNCTION		'I'		// Function
+#define ESC_ENDFUNCTION		'J'		// End Function
+#define ESC_EXITFUNCTION	'K'		// Exit Function
+#define ESC_BYVAL			'L'		// ByVal
+#define ESC_BYREF			'M'		// ByRef
+#define ESC_TYPE			'N'		// Type
+#define ESC_ENDTYPE			'O'		// End Type
+#define ESC_EXITFOR			'P'		// Exit For
+#define ESC_EXITWHILE		'Q'		// Exit Wend
+#define ESC_EXITDO			'R'		// Exit Do
+#define ESC_SELECTCASE		'S'		// Select Case
+#define ESC_CASE			'T'		// Case
+#define ESC_CASEELSE		'U'		// Case Else
+#define ESC_ENDSELECT		'V'		// End Select
+#define ESC_CONST			'W'		// Const
+#define ESC_WITH			'X'		// With
+#define ESC_ENDWITH			'Y'		// End With
+#define ESC_CDECL			'Z'		// cdecl規約
+#define ESC_MACRO			'a'		// Macro
+#define ESC_ENDMACRO		'b'		// End Macro
+#define ESC_EXITMACRO		'c'		// Exit Macro
+#define ESC_EXPORT			'd'		// Export
+#define ESC_CONTINUE		'e'		// Continue
+#define ESC_PSMEM			'f'		// "->" Member of Pointer Struct（構造体ポインタのメンバ参照）
+#define ESC_STATIC			'g'		// Static
+#define ESC_TYPEDEF			'h'		// TypeDef
+#define ESC_TRY				'i'		// Try
+#define ESC_CATCH			'j'		// Catch
+#define ESC_FINALLY			'k'		// Finally
+#define ESC_THROW			'l'		// Throw
+#define ESC_ENDTRY			'm'		// End Try
+#define ESC_NAMESPACE		'o'		// Namespace
+#define ESC_ENDNAMESPACE	'p'		// End Namespace
+#define ESC_IMPORTS			'q'		// Imports
+#define ESC_CLEARNAMESPACEIMPORTED 'r'	// _ClearNamespaceImported
+#define ESC_OPERATOR		's'
+#define ESC_IN				't'		// In
+//EXEファイル用制御エスケープシーケンス
+#define ESC_USING			'u'		// Print命令語のUsing
+#define ESC_FOR				'v'		// Open命令語のFor
+#define ESC_LINENUM			'w'		// 行番号を示す
+
+//オブジェクト指向エスケープシーケンス
+#define ESC_CLASS			(char)0xA0
+#define ESC_ENDCLASS		(char)0xA1
+#define ESC_ABSTRACT		(char)0xA2
+#define ESC_VIRTUAL			(char)0xA3
+#define ESC_OVERRIDE		(char)0xA4
+#define ESC_INHERITS		(char)0xA5
+#define ESC_ENUM			(char)0xA6
+#define ESC_ENDENUM			(char)0xA7
+#define ESC_NEW				(char)0xA8
+#define ESC_INTERFACE		(char)0xA9
+#define ESC_ENDINTERFACE	(char)0xAA
+#define ESC_DELEGATE		(char)0xAB
+#define ESC_IMPLEMENTS		(char)0xAC
+#define ESC_SYSTEM_STATIC_NEW	(char)0xAD
Index: /trunk/ab5.0/jenga/include/smoothie/Smoothie.h
===================================================================
--- /trunk/ab5.0/jenga/include/smoothie/Smoothie.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/smoothie/Smoothie.h	(revision 441)
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <string>
+
+class Smoothie{
+	static bool isUnicode;
+public:
+
+	static bool IsUnicode()
+	{
+		return isUnicode;
+	}
+	static void SetUnicodeMark( bool isUnicode )
+	{
+		Smoothie::isUnicode = isUnicode;
+	}
+
+	class Lexical{
+	public:
+		static std::string baseProjectDirPath;
+	};
+
+	static bool isFullCompile;
+};
Index: /trunk/ab5.0/jenga/include/smoothie/SmoothieException.h
===================================================================
--- /trunk/ab5.0/jenga/include/smoothie/SmoothieException.h	(revision 441)
+++ /trunk/ab5.0/jenga/include/smoothie/SmoothieException.h	(revision 441)
@@ -0,0 +1,79 @@
+#pragma once
+
+#include <string>
+#include <vector>
+
+void SetError(int ErrorNum,const std::string &keyWord,int pos);
+void SetError(int num,const char *KeyWord,int pos);
+void SetError();
+
+class SmoothieException
+{
+	int errorCode;
+	std::string keyword;
+	int nowLine;
+	static void Throwing()
+	{
+		//ここでブレークポイント
+		int dummy=0;
+	}
+public:
+	static void Throw( int errorCode, const std::string &keyword, int nowLine )
+	{
+		Throwing();
+		SetError( errorCode, keyword, nowLine );
+	}
+	static void Throw( int errorCode, const std::string &keyword )
+	{
+		Throwing();
+		SetError( errorCode, keyword,-1 );
+	}
+	static void Throw( int errorCode )
+	{
+		Throwing();
+		SetError( errorCode,"",-1 );
+	}
+	static void Throw()
+	{
+		Throwing();
+		SetError();
+	}
+
+	SmoothieException( int errorCode, const std::string &keyword, int nowLine )
+		: errorCode( errorCode )
+		, keyword( keyword )
+		, nowLine( nowLine )
+	{
+	}
+	SmoothieException( int errorCode, const std::string &keyword )
+		: errorCode( errorCode )
+		, keyword( keyword )
+		, nowLine( -1 )
+	{
+	}
+	SmoothieException( int errorCode )
+		: errorCode( errorCode )
+		, keyword( "" )
+		, nowLine( -1 )
+	{
+	}
+	SmoothieException()
+		: errorCode( 300 )
+		, keyword( "" )
+		, nowLine( -1 )
+	{
+	}
+
+	int GetErrorCode() const
+	{
+		return errorCode;
+	}
+	const std::string &GetKeyword() const
+	{
+		return keyword;
+	}
+	int GetNowLine() const
+	{
+		return nowLine;
+	}
+};
Index: /trunk/ab5.0/jenga/projects/common/common.vcproj
===================================================================
--- /trunk/ab5.0/jenga/projects/common/common.vcproj	(revision 441)
+++ /trunk/ab5.0/jenga/projects/common/common.vcproj	(revision 441)
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="common"
+	ProjectGUID="{F01805B6-65B4-4708-88F4-A5E07DEA9FBD}"
+	RootNamespace="common"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug(amd64)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalOptions="/GR"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="0"
+				RuntimeLibrary="1"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+				DisableSpecificWarnings="4103"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\amd64\$(ProjectName)d.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release(amd64)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalOptions="/GR"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				WholeProgramOptimization="false"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				RuntimeLibrary="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="0"
+				DisableSpecificWarnings="4103"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\amd64\$(ProjectName).lib"
+				IgnoreDefaultLibraryNames=""
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug(x86)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\x86\$(ProjectName)d.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release(x86)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				RuntimeLibrary="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\x86\$(ProjectName).lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="ソース ファイル"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\src\common\CmdLine.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\common\Directory.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\common\Exception.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\common\index.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\common\Path.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="ヘッダー ファイル"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\include\common\CmdLine.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\common\Directory.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\common\Environment.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\common\Exception.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\common\File.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\common\Path.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\common\String.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="リソース ファイル"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Index: /trunk/ab5.0/jenga/projects/smoothie/smoothie.vcproj
===================================================================
--- /trunk/ab5.0/jenga/projects/smoothie/smoothie.vcproj	(revision 441)
+++ /trunk/ab5.0/jenga/projects/smoothie/smoothie.vcproj	(revision 441)
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="smoothie"
+	ProjectGUID="{996D6B55-6503-4427-84AB-351784EAFB71}"
+	RootNamespace="smoothie"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug(amd64)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalOptions="/GR"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				PreprocessorDefinitions="_AMD64_;_WIN64"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="0"
+				RuntimeLibrary="1"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+				DisableSpecificWarnings="4103"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\amd64\$(ProjectName)d.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release(amd64)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalOptions="/GR"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				WholeProgramOptimization="false"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				PreprocessorDefinitions="_AMD64_;_WIN64"
+				RuntimeLibrary="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="0"
+				DisableSpecificWarnings="4103"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\amd64\$(ProjectName).lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release(x86)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				RuntimeLibrary="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\x86\$(ProjectName).lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Debug(x86)|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\..\;..\..\..\cpplibs\boost"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\..\lib\x86\$(ProjectName)d.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="ソース ファイル"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\src\smoothie\Smoothie.cpp"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="ヘッダー ファイル"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\include\smoothie\BasicFixed.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\smoothie\Smoothie.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\include\smoothie\SmoothieException.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="リソース ファイル"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Index: /trunk/ab5.0/jenga/src/common/CmdLine.cpp
===================================================================
--- /trunk/ab5.0/jenga/src/common/CmdLine.cpp	(revision 441)
+++ /trunk/ab5.0/jenga/src/common/CmdLine.cpp	(revision 441)
@@ -0,0 +1,86 @@
+#include <jenga/include/common/CmdLine.h>
+
+#include <boost/foreach.hpp>
+
+using namespace Jenga::Common;
+
+CmdLines::CmdLines( const std::string &strCmdLine )
+{
+	for( int i=0; i<(int)strCmdLine.size() ; i++ )
+	{
+		if( strCmdLine[i] == '/' )
+		{
+			i++;
+
+			char temporary[255];
+
+			// コマンド文字列（オプション名）を抽出
+			for( int j = 0; ; j++, i++ )
+			{
+				if( isalpha( strCmdLine[i] ) || isdigit( strCmdLine[i] ) || strCmdLine[i] == '_' )
+				{
+					temporary[j] = strCmdLine[i];
+				}
+				else
+				{
+					temporary[j] = 0;
+					break;
+				}
+			}
+			while( strCmdLine[i] == ' ' ) i++;
+
+			std::string command = temporary;
+			std::string parameter = "";
+
+			if( (int)strCmdLine.size() > i && strCmdLine[i] != '/' )
+			{
+				// パラメータを抽出
+				if( strCmdLine[i] == '\"' )
+				{
+					i++;
+					//ダブルクォートの中身を取り出す
+					for( int j=0; ; j++, i++ )
+					{
+						if( strCmdLine[i] == '\"' || strCmdLine[i] == '\0' )
+						{
+							temporary[j] = 0;
+
+							if( strCmdLine[i] == '\"' ) i++;
+							break;
+						}
+						temporary[j] = strCmdLine[i];
+					}
+				}
+				else
+				{
+					//空白またはヌル文字以前を取り出す
+					for( int j=0; ; j++, i++ )
+					{
+						if( strCmdLine[i] == ' ' || strCmdLine[i] == '\0' )
+						{
+							temporary[j] = 0;
+							break;
+						}
+						temporary[j] = strCmdLine[i];
+					}
+				}
+				parameter = temporary;
+			}
+
+			this->push_back( CmdLine( command, parameter ) );
+		}
+	}
+}
+
+bool CmdLines::IsExist( const std::string &commandString ) const
+{
+	const CmdLines &cmdLines = *this;
+	BOOST_FOREACH( const CmdLine &cmdLine, cmdLines )
+	{
+		if( cmdLine.GetCommand() == commandString )
+		{
+			return true;
+		}
+	}
+	return false;
+}
Index: /trunk/ab5.0/jenga/src/common/Directory.cpp
===================================================================
--- /trunk/ab5.0/jenga/src/common/Directory.cpp	(revision 441)
+++ /trunk/ab5.0/jenga/src/common/Directory.cpp	(revision 441)
@@ -0,0 +1,67 @@
+#include <boost/foreach.hpp>
+#include <jenga/include/common/Directory.h>
+#include <jenga/include/common/Exception.h>
+
+#include <imagehlp.h>
+
+using namespace std;
+using namespace Jenga::Common;
+
+Directory::Directory( const string &path, bool isMake )
+	: path( path )
+{
+	if ( isMake )
+	{
+		if (!::MakeSureDirectoryPathExists(path.c_str()))
+		{
+			Jenga::Throw( "MakeSureDirectoryPathExists failed!" );
+		}
+	}
+}
+
+string Directory::GetFullPath( const string &relationPath )
+{
+	string resultPath = relationPath;
+
+	// '/'→'\'
+	BOOST_FOREACH( char &c, resultPath )
+	{
+		if( c == '/' )
+		{
+			c = '\\';
+		}
+	}
+
+	if( resultPath.find( ":" ) != string::npos || resultPath.find( "\\\\" ) != string::npos )
+	{
+		// フルパスが引き渡されていたとき
+		return resultPath;
+	}
+
+	int i=0,i2=0;
+	while(1){
+		if(resultPath[i]=='.'&&resultPath[i+1]=='\\') i+=2;
+		if(resultPath[i]=='.'&&resultPath[i+1]=='.'&&resultPath[i+2]=='\\'){
+			i2++;
+			i+=3;
+		}
+		else break;
+	}
+
+	int i3 = (int)path.size(),i4=0;
+	while(i4<i2){
+		for(i3--;;i3--){
+			if(path[i3-1]=='\\'){
+				i4++;
+				break;
+			}
+		}
+	}
+
+	char temporary[MAX_PATH];
+	memcpy(temporary,path.c_str(),i3);
+	temporary[i3]=0;
+	lstrcat(temporary,resultPath.c_str()+i);
+
+	return temporary;
+}
Index: /trunk/ab5.0/jenga/src/common/Exception.cpp
===================================================================
--- /trunk/ab5.0/jenga/src/common/Exception.cpp	(revision 441)
+++ /trunk/ab5.0/jenga/src/common/Exception.cpp	(revision 441)
@@ -0,0 +1,16 @@
+#include <jenga/include/common/Exception.h>
+
+#include <windows.h>
+
+
+namespace Jenga{
+
+
+void Throw( const std::string &message )
+{
+	MessageBox( NULL, message.c_str(), "Jenga::Throw", MB_OK );
+	throw message;
+}
+
+
+}
Index: /trunk/ab5.0/jenga/src/common/Path.cpp
===================================================================
--- /trunk/ab5.0/jenga/src/common/Path.cpp	(revision 441)
+++ /trunk/ab5.0/jenga/src/common/Path.cpp	(revision 441)
@@ -0,0 +1,23 @@
+#include <boost/foreach.hpp>
+#include <jenga/include/common/Path.h>
+
+#include <windows.h>
+
+
+bool Jenga::Common::Path::IsExistFile() const
+{
+	WIN32_FIND_DATA wfd;
+	HANDLE hFind = FindFirstFile( fullPath.c_str() , &wfd );
+	if( hFind != INVALID_HANDLE_VALUE ){
+		FindClose( hFind );
+		if( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
+		{
+			// ディレクトリ
+			return false;
+		}
+
+		return true;
+	}
+
+	return false;
+}
Index: /trunk/ab5.0/jenga/src/common/index.cpp
===================================================================
--- /trunk/ab5.0/jenga/src/common/index.cpp	(revision 441)
+++ /trunk/ab5.0/jenga/src/common/index.cpp	(revision 441)
@@ -0,0 +1,3 @@
+#include <jenga/include/common/Environment.h>
+#include <jenga/include/common/Path.h>
+#include <jenga/include/common/String.h>
Index: /trunk/ab5.0/jenga/src/smoothie/Smoothie.cpp
===================================================================
--- /trunk/ab5.0/jenga/src/smoothie/Smoothie.cpp	(revision 441)
+++ /trunk/ab5.0/jenga/src/smoothie/Smoothie.cpp	(revision 441)
@@ -0,0 +1,5 @@
+#include <jenga/include/smoothie/Smoothie.h>
+
+bool Smoothie::isUnicode = false;
+
+bool Smoothie::isFullCompile = false;
