示例#1
0
        /// <summary>
        /// The main driver to parse the query model. We will cache the result into a function
        /// if it is something we know how to cache.
        /// </summary>
        /// <param name="queryModel"></param>
        public override void VisitQueryModel(QueryModel queryModel)
        {
            Debug.WriteLine("VisitQueryModel: {0}{1}", queryModel.ToString(), "");
            Debug.Indent();

            // If this is a QM function we are referencing, then process it as such.
            var qmSource = _codeEnv.FindQMFunction(queryModel);

            if (qmSource == null)
            {
                VisitQueryModelNoCache(queryModel);
            }
            else
            {
                VisitQueryModelCache(queryModel, qmSource);
            }
            Debug.Unindent();
        }