 			}
 			
 			// parse
-			while (token)
+			while (token = getToken())
 			{
 				switch (token)
 				{

				if (node is Group)
				{
					var group 		: Group = node as Group;
					var numChildren : int 	= group.numChildren;
					
					for (var i : int = 0; i < numChildren; ++i)
					{
						var child 		: ISceneNode 	= group.getChildAt(i);
						var childType 	: String 		= getQualifiedClassName(child).split('::')[1];
						
						if (typeName == null || childType.toLowerCase() == typeName)
							_selection.push(child);
					}
				}
//				else
//					_selection.push(node);
			}
		}
		

		
		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();
