public XElement GetQueryXml(WorkItemContext context, FieldList fields)
        {
            var parser = new LexalParser(this.QueryText);
            var nodes  = parser.ProcessWherePart();

            nodes.Optimize();
            nodes.ExtractOperatorForward();
            nodes.FixFields(fields);
            nodes.FillFieldTypes(fields);

            var manager = new ParameterManager(context);

            manager.EvalParameters(nodes);

            var xmlTransformer = new NodesToXml(nodes);

            return(XElement.Parse(xmlTransformer.WriteXml()));
        }