protected static string[] ApplyAstOpt(Parser AST, ChangeVisitor opt)
        {
            AST.root.Visit(opt);
            var pp = new PrettyPrintVisitor();

            AST.root.Visit(pp);
            return(pp.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries));
        }
Exemple #2
0
            public override void AfterAct(ActBase act)
            {
                var visitor = new ChangeVisitor();

                visitor.Visit(_After.Body);

                var newValue = Expression.Lambda(visitor.Result).Compile().DynamicInvoke();

                if (!Equals(newValue, _FutureValue))
                {
                    throw new SmartTestException(string.Format(Resource.ChangeWrongly, _FutureValue, newValue));
                }
            }
 protected static string[] TestASTOptimization(string sourceCode, ChangeVisitor optimization) =>
 ApplyAstOpt(BuildAST(sourceCode), optimization);