Index: /trunk/jenga/include/smoothie/BasicFixed.h
===================================================================
--- /trunk/jenga/include/smoothie/BasicFixed.h	(revision 340)
+++ /trunk/jenga/include/smoothie/BasicFixed.h	(revision 341)
@@ -216,2 +216,3 @@
 #define ESC_ENDINTERFACE	(char)0xAA
 #define ESC_DELEGATE		(char)0xAB
+#define ESC_IMPLEMENTS		(char)0xAC
Index: /trunk/jenga/include/smoothie/LexicalAnalysis.h
===================================================================
--- /trunk/jenga/include/smoothie/LexicalAnalysis.h	(revision 340)
+++ /trunk/jenga/include/smoothie/LexicalAnalysis.h	(revision 341)
@@ -5,4 +5,6 @@
 
 #include <windows.h>
+
+#include <jenga/include/common/String.h>
 
 typedef std::vector<int> Subscripts;
@@ -29,4 +31,5 @@
 int GetStringInPare_RemovePare(char *buffer,const char *ReadBuffer);
 void GetArrange(char *variable,char *variAnswer, Subscripts &subscripts );
+void SplitParameter( const std::string &src, Jenga::Common::Strings &dests, bool isClear = true );
 bool SplitMemberName( const char *desc, char *object, char *member, ReferenceKind &refType );
 bool SplitMemberName( const char *desc, char *object, char *member );
Index: /trunk/jenga/src/smoothie/LexicalAnalysis.cpp
===================================================================
--- /trunk/jenga/src/smoothie/LexicalAnalysis.cpp	(revision 340)
+++ /trunk/jenga/src/smoothie/LexicalAnalysis.cpp	(revision 341)
@@ -238,4 +238,23 @@
 	return i;
 }
+
+void SplitParameter( const std::string &src, Jenga::Common::Strings &dests, bool isClear )
+{
+	const char *buffer = src.c_str();
+	int i = 0;
+
+	if( isClear )
+	{
+		dests.clear();
+	}
+
+	while( buffer[i] )
+	{
+		char result[8192];
+		i = GetOneParameter( buffer, i, result );
+		dests.push_back( result );
+	}
+}
+
 
 bool SplitMemberName( const char *desc, char *object, char *member, ReferenceKind &refType ){
