private IEnumerable <ExecutionFrame> MultiplyFrameByCollection(
            QueryExecutor executor,
            ExecutionFrame frame
            )
        {
            IEnumerable <JsonValue> collection = CollectionExpression
                                                 .Evaluate(executor, frame)
                                                 .AsJsonArray;

            return(collection.Select(
                       item => frame.AddVariable(VariableName, item)
                       ));
        }
        public void ItEvaluatesParameters()
        {
            Assert.AreEqual(
                "42",
                parser
                .Parse((x) => x)
                .Evaluate(executor, frame.AddVariable("x", 42))
                .ToString()
                );

            Assert.Throws <QueryExecutionException>(() => {
                parser
                .Parse((notX) => notX)     // parameter cannot be resolved
                .Evaluate(executor, frame.AddVariable("x", 42));
            });
        }