 						parseNodeType(token);
 						break ;
 				}
-				
-				token = getToken();
 			}
 		}
 		

			}
			
			// parse
			while (token)
			{
				switch (token)
				{

		
		private function parseNodeType(nodeType : String) : void
		{
			if (nodeType == '.')
			{
				// nothing
			}
			if (nodeType == '..')
				selectParents();
			else if (nodeType == '*')
				selectChildren();
			else
				selectChildren(nodeType);
			
			// apply predicates
			var token : String = getToken();
