 				scanner.next()
 				token = scanner.token()
 
-			parseTerm = () ->
-				term = parseFactor()
-
-				while token? and token.type == Scanner.OPERATOR and token.value in [ "*", "/" ]
-					operator = token.value
-					next()
-
-					term = Expression.initOperator operator, [term, parseFactor()]
-				term
-
-			parseSubExpression = () ->
-				subExpression = parseTerm()
-
-				while token? and token.type == Scanner.OPERATOR and token.value in [ "+", "-" ]
-					operator = token.value
-					next()
-
-					subExpression = Expression.initOperator operator, [subExpression, parseTerm()]
-				subExpression
-
-			parseExpression = () ->
-				expression = parseSubExpression()
-
-				while token? and token.type == Scanner.OPERATOR and token.value in [ "=", "<>", "<", ">", "<=", ">=" ]
-					operator = token.value
-					next()
-
-					expression = Expression.initOperator operator, [expression, parseSubExpression()]
-				expression
-
 			parseExpressionList = () ->
 				expressions = [parseExpression()]
 				while token? and token.type == Scanner.DELIMITER and token.value == ","

						throw new Error "Missing property ID at position " + makePosition()
				path

			parseFactor = () ->
				result = null
				args = []


			if roots[rootName]?
				root = roots[rootName]

				if $.isPlainObject(root) or root instanceof Array
					collection = Expression.initCollection root, valueType
				else
					collection = Expression.initCollection [root], valueType
