Index: trunk/ab5.0/jenga/src/common/EasyToken.cpp
===================================================================
--- trunk/ab5.0/jenga/src/common/EasyToken.cpp	(revision 622)
+++ trunk/ab5.0/jenga/src/common/EasyToken.cpp	(revision 622)
@@ -0,0 +1,21 @@
+#include "stdafx.h"
+
+std::string Jenga::Common::EasyToken::GetIdentifierToken( const std::string &source, int &sourceIndex )
+{
+	char *token = (char *)malloc( source.size() + 1 );
+
+	for( int i=0; ; i++, sourceIndex++ )
+	{
+		if( ! IsIdentifierChar( source[sourceIndex] ) )
+		{
+			token[i] = 0;
+			break;
+		}
+		token[i] = source[sourceIndex];
+	}
+
+	std::string resultToken = token;
+	free( token );
+
+	return resultToken;
+}
Index: trunk/ab5.0/jenga/src/common/String.cpp
===================================================================
--- trunk/ab5.0/jenga/src/common/String.cpp	(revision 620)
+++ trunk/ab5.0/jenga/src/common/String.cpp	(revision 622)
@@ -55,2 +55,12 @@
 	return wstr;
 }
+
+bool Jenga::Common::IsIdentifierTopChar( char c )
+{
+	return ( isalpha( c ) || c == '_' );
+}
+
+bool Jenga::Common::IsIdentifierChar( char c )
+{
+	return ( IsIdentifierTopChar( c ) || isdigit( c ) );
+}
