private static void Main(string[] args) {
			SemanticTypeActions<QueryToken> queryActions = new SemanticTypeActions<QueryToken>(CompiledGrammar.Load(typeof(QueryToken), "Query.cgt"));
			queryActions.Initialize(true);
			SemanticTypeActions<ExpressionToken> expressionActions = new SemanticTypeActions<ExpressionToken>(CompiledGrammar.Load(typeof(ExpressionToken), "Expression.cgt"));
			expressionActions.Initialize(true);
			string input = "VIEW a WHERE x = 20 ORDER BY y";
			using (StringReader reader = new StringReader(input)) {
				QueryProcessor processor = new QueryProcessor(new QueryTokenizer(reader, queryActions, expressionActions));
				ParseMessage message = processor.ParseAll();
				Console.WriteLine("Parsing result: "+message);
				if (message != ParseMessage.Accept) {
					Console.WriteLine(input);
					Console.Write(new string(' ', (int)((IToken)processor.CurrentToken).Position.Index));
					Console.WriteLine('^');
				}
			}
			Console.ReadKey(false);
		}