Ejemplo n.º 1
0
        public static T ReplaceValueInfoRefsWithData <T>(T expr, string dataSrcName, Dictionary <string, object> dictValues = null) where T : Expr
        {
            var dataRef = new ReferenceExpr(dataSrcName);
            T   res     = (T)expr.Visit(Expr.RecursiveModifier(e =>
            {
                var refExpr = e as ReferenceExpr;
                if (refExpr == null || !ValueInfo.IsDescriptor(refExpr.name))
                {
                    return(e);
                }
                if (dictValues != null)
                {
                    dictValues[refExpr.name] = null;
                }
                return(new IndexExpr(dataRef, new ConstExpr(refExpr.name)));
            }));

            return(res);
        }