Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/BreakPoint.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/BreakPoint.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/BreakPoint.h	(revision 828)
@@ -9,8 +9,33 @@
 	BreakPointsPerFile(const char *lpszFileName,int iLineNum);
 
+	BreakPointsPerFile(BreakPointsPerFile&& y)
+		: filename(std::move(y.filename))
+		, lines(std::move(y.lines))
+	{
+	}
+
+	BreakPointsPerFile(BreakPointsPerFile const& y)
+		: filename(y.filename)
+		, lines(y.lines)
+	{
+	}
+
+	BreakPointsPerFile& operator =(BreakPointsPerFile&& y)
+	{
+		filename = std::move(y.filename);
+		lines = std::move(y.lines);
+		return *this;
+	}
+
+	BreakPointsPerFile& operator =(BreakPointsPerFile const& y)
+	{
+		return *this = std::move(BreakPointsPerFile(y));
+	}
+
 	void add(int iLineNum);
 	void remove(int iLineNum);
 
 	void update( char *nativeCodeBuffer, const SourceLines &sourceLines );
+
 };
 typedef std::vector<BreakPointsPerFile> BreakPointsPerFiles;
@@ -27,4 +52,8 @@
 
 	char *update( char *nativeCodeBuffer, int SizeOf_CodeSection, const SourceLines &sourceLines );
+
+private:
+	BreakPointManager(BreakPointManager const&);
+	BreakPointManager& operator =(BreakPointManager const&);
 };
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/CodeGenerator.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/CodeGenerator.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/CodeGenerator.h	(revision 828)
@@ -33,4 +33,8 @@
 		return typeSize;
 	}
+
+private:
+	PertialSchedule(PertialSchedule const&);
+	PertialSchedule& operator =(PertialSchedule const&);
 };
 typedef std::vector<const PertialSchedule *> PertialSchedules;
@@ -68,4 +72,8 @@
 		return sourceCodePos;
 	}
+
+private:
+	GotoLabelSchedule(GotoLabelSchedule const&);
+	GotoLabelSchedule& operator =(GotoLabelSchedule const&);
 };
 typedef std::vector<const GotoLabelSchedule *> GotoLabelSchedules;
@@ -90,4 +98,31 @@
 		, address( nativeCodePos )
 	{
+	}
+
+	GotoLabel(GotoLabel&& y)
+		: name(std::move(y.name))
+		, line(std::move(y.line))
+		, address(std::move(y.address))
+	{
+	}
+
+	GotoLabel(GotoLabel const& y)
+		: name(y.name)
+		, line(y.line)
+		, address(y.address)
+	{
+	}
+
+	GotoLabel& operator =(GotoLabel&& y)
+	{
+		name = std::move(y.name);
+		line = std::move(y.line);
+		address = std::move(y.address);
+		return *this;
+	}
+
+	GotoLabel& operator =(GotoLabel const& y)
+	{
+		return *this = std::move(GotoLabel(y));
 	}
 };
@@ -147,4 +182,8 @@
 	void Break();
 	void RunScheduleOfBreak();
+
+private:
+	LexicalScope(LexicalScope const&);
+	LexicalScope& operator =(LexicalScope const&);
 };
 
@@ -184,4 +223,8 @@
 	//Returnステートメント用のデストラクタ呼び出し
 	void CallDestructorsOfReturn( int BaseLevel = 0 );
+
+private:
+	LexicalScopes(LexicalScopes const&);
+	LexicalScopes& operator =(LexicalScopes const&);
 };
 
@@ -534,3 +577,7 @@
 		pNativeCode->Put( c6 );
 	}
+
+private:
+	CodeGenerator(CodeGenerator const&);
+	CodeGenerator& operator =(CodeGenerator const&);
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Compiler.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Compiler.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Compiler.h	(revision 828)
@@ -1,2 +1,8 @@
+#include "Messenger.h"
+#include "CodeGenerator.h"
+#include "Linker.h"
+#include "Enum.h"
+#include "ErrorCode.h"
+
 #pragma once
 
@@ -209,4 +215,8 @@
 	bool IsCompilingClass();
 	const CClass &GetCompilingClass();
+
+private:
+	Compiler(Compiler const&);
+	Compiler& operator =(Compiler const&);
 };
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Configuration.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Configuration.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Configuration.h	(revision 828)
@@ -27,3 +27,6 @@
 		ar & BOOST_SERIALIZATION_NVP( abdevRootRelativePath );
 	}
+
+	Configuration(Configuration const&);
+	Configuration& operator =(Configuration const&);
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/DataTableGenerator.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/DataTableGenerator.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/DataTableGenerator.h	(revision 828)
@@ -17,4 +17,8 @@
 	}
 
+private:
+	DataTableGenerator();
+	DataTableGenerator(DataTableGenerator const&);
+	DataTableGenerator& operator =(DataTableGenerator const&);
 };
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Debugger.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Debugger.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Debugger.h	(revision 828)
@@ -24,4 +24,8 @@
 		return isRunning;
 	}
+
+private:
+	Debugger(Debugger const&);
+	Debugger& operator =(Debugger const&);
 };
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Enum.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Enum.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Enum.h	(revision 828)
@@ -6,4 +6,5 @@
 	std::string value;
 	int sourceIndex;
+
 public:
 	EnumMember( const std::string &name, const std::string &value, int sourceIndex )
@@ -13,4 +14,32 @@
 	{
 	}
+
+	EnumMember(EnumMember&& y)
+		: name(std::move(y.name))
+		, value(std::move(y.value))
+		, sourceIndex(std::move(y.sourceIndex))
+	{
+	}
+
+	EnumMember(EnumMember const& y)
+		: name(y.name)
+		, value(y.value)
+		, sourceIndex(y.sourceIndex)
+	{
+	}
+
+	EnumMember& operator =(EnumMember&& y)
+	{
+		name = std::move(y.name);
+		value = std::move(y.value);
+		sourceIndex = std::move(y.sourceIndex);
+		return *this;
+	}
+
+	EnumMember& operator =(EnumMember const& y)
+	{
+		return *this = std::move(EnumMember(y));
+	}
+
 	const std::string &GetName() const
 	{
@@ -39,4 +68,31 @@
 		: Symbol( namespaceScopes, name )
 	{
+	}
+
+	EnumInfo(EnumInfo&& y)
+		: Symbol(std::move(y))
+		, bConst(std::move(y.bConst))
+		, members(std::move(y.members))
+	{
+	}
+
+	EnumInfo(EnumInfo const& y)
+		: Symbol(y)
+		, bConst(y.bConst)
+		, members(y.members)
+	{
+	}
+
+	EnumInfo& operator =(EnumInfo&& y)
+	{
+		Symbol::operator =(std::move(y));
+		bConst = std::move(y.bConst);
+		members = std::move(y.members);
+		return *this;
+	}
+
+	EnumInfo& operator =(EnumInfo const& y)
+	{
+		return *this = std::move(EnumInfo(y));
 	}
 
@@ -80,3 +136,9 @@
 		return NULL;
 	};
+
+	EnumInfoCollection() {}
+
+private:
+	EnumInfoCollection(EnumInfoCollection const&);
+	EnumInfoCollection& operator =(EnumInfoCollection const&);
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h	(revision 828)
@@ -1,3 +1,8 @@
+#include <string>
+
 #pragma once
+
+class EnumInfo;
+class EnumInfoCollection;
 
 namespace ActiveBasic{ namespace Compiler{
@@ -24,5 +29,5 @@
 
 	// TypeDefを収集する
-	static void AddTypeDef( TypeDefCollection &typeDefs, const NamespaceScopes &namespaceScopes, const std::string &expression, int nowLine );
+	static void AddTypeDef( TypeDefCollection &typeDefs, const NamespaceScopes &namespaceScopes, const boost::iterator_range<char const*> &expression, int nowLine );
 	static void CollectTypeDefs( const char *source, TypeDefCollection &typeDefs );
 
@@ -30,5 +35,11 @@
 	static void AddConstEnum( Consts &consts, const NamespaceScopes &namespaceScopes, const char *buffer );
 	static void CollectConsts( const char *source, Consts &consts, ConstMacros &constMacros );
-	static bool ConstMacroToExpression( const ConstMacro &constMacro, const char *parameterStr, char *dest );
+	static bool ConstMacroToExpression( const ConstMacro &constMacro, const char *parameterStr, std::string& dest );
+	static bool ConstMacroToExpression( const ConstMacro &constMacro, const char *parameterStr, char *dest, std::size_t destSize );
+	template<std::size_t N>
+	static bool ConstMacroToExpression( const ConstMacro &constMacro, const char *parameterStr, char (&dest)[N] )
+	{
+		return ConstMacroToExpression(constMacro, parameterStr, dest, N);
+	}
 
 	// クラスを収集する
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Linker.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Linker.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Linker.h	(revision 828)
@@ -54,3 +54,7 @@
 	// データテーブルをセット
 	void SetDataTable( DataTable &dataTable );
+
+private:
+	Linker(Linker const&);
+	Linker& operator =(Linker const&);
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Messenger.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Messenger.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Messenger.h	(revision 828)
@@ -1,2 +1,3 @@
+#pragma once
 
 class Messenger
@@ -23,5 +24,39 @@
 	{
 	}
+
 	ErrorInfo( int errorCode, const std::string &keyword, int sourceIndex );
+
+	ErrorInfo(ErrorInfo&& y)
+		: errorCode(std::move(y.errorCode))
+		, keyword(std::move(y.keyword))
+		, sourceFilePath(std::move(y.sourceFilePath))
+		, sourceLineNum(std::move(y.sourceLineNum))
+		, errorLineNum(std::move(y.errorLineNum))
+	{
+	}
+
+	ErrorInfo(ErrorInfo const& y)
+		: errorCode(y.errorCode)
+		, keyword(y.keyword)
+		, sourceFilePath(y.sourceFilePath)
+		, sourceLineNum(y.sourceLineNum)
+		, errorLineNum(y.errorLineNum)
+	{
+	}
+
+	ErrorInfo& operator =(ErrorInfo&& y)
+	{
+		errorCode = std::move(y.errorCode);
+		keyword = std::move(y.keyword);
+		sourceFilePath = std::move(y.sourceFilePath);
+		sourceLineNum = std::move(y.sourceLineNum);
+		errorLineNum = std::move(y.errorLineNum);
+		return *this;
+	}
+
+	ErrorInfo& operator =(ErrorInfo const& y)
+	{
+		return *this = std::move(ErrorInfo(y));
+	}
 
 	int GetErrorCode() const
@@ -62,4 +97,6 @@
 
 public:
+	ErrorMessenger() {}
+
 	void Output( const ErrorInfo &errorInfo );
 	void Output( int errorCode, const std::string &keyword, int sourceIndex = -1 );
@@ -74,3 +111,7 @@
 
 	void ShowErrorLine( int errorLineNum );
+
+private:
+	ErrorMessenger(ErrorMessenger const&);
+	ErrorMessenger& operator =(ErrorMessenger const&);
 };
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/Program.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/Program.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/Program.h	(revision 828)
@@ -96,4 +96,8 @@
 
 	int GetExitCode() const;
+
+private:
+	Program(Program const&);
+	Program& operator =(Program const&);
 };
 
Index: trunk/ab5.0/abdev/BasicCompiler_Common/include/logger.h
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/include/logger.h	(revision 750)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/include/logger.h	(revision 828)
@@ -28,4 +28,7 @@
 		ar & BOOST_SERIALIZATION_NVP( stopStep );
 	}
+
+	LoggerSetting(LoggerSetting const&);
+	LoggerSetting operator =(LoggerSetting const&);
 };
 
