Наследование: ICSharpCode.NRefactory.CSharp.DepthFirstAstVisitor
Пример #1
0
        private void CompressLocals()
        {
            var localsVisitor = new MinifyLocalsAstVisitor(IgnoredIdentifiers);

            CompileAndAcceptVisitor(localsVisitor);
            var substitutor  = new Substitutor(new MinIdGenerator());
            var ignoredNames = new List <string>(IgnoredIdentifiers);

            ignoredNames.AddRange(localsVisitor.NotLocalsIdNames);
            var substituton = substitutor.Generate(localsVisitor.MethodVars, ignoredNames.ToArray());

            var astSubstitution = new Dictionary <string, List <Tuple <string, List <AstNode> > > >();

            foreach (var method in localsVisitor.MethodVars)
            {
                var localVarsAstNodes = new List <Tuple <string, List <AstNode> > >();
                astSubstitution[method.Key] = localVarsAstNodes;
                var localsSubst = substituton[method.Key];
                foreach (NameNode localVar in method.Value)
                {
                    localVarsAstNodes.Add(new Tuple <string, List <AstNode> >(localsSubst[localVar.Name], GetResolvedNodes(ResolveResultType.Local, localVar.Node)));
                }
            }

            RenameOrRemoveNodes(astSubstitution, true, Options.LocalVarsCompressing);
        }
Пример #2
0
        private void CompressLocals()
        {
            var localsVisitor = new MinifyLocalsAstVisitor(IgnoredIdentifiers);
            CompileAndAcceptVisitor(localsVisitor);
            var substitutor = new Substitutor(new MinIdGenerator());
            var ignoredNames = new List<string>(IgnoredIdentifiers);
            ignoredNames.AddRange(localsVisitor.NotLocalsIdNames);
            var substituton = substitutor.Generate(localsVisitor.MethodVars, ignoredNames.ToArray());

            var astSubstitution = new Dictionary<string, List<Tuple<string, List<AstNode>>>>();
            foreach (var method in localsVisitor.MethodVars)
            {
                var localVarsAstNodes = new List<Tuple<string, List<AstNode>>>();
                astSubstitution[method.Key] = localVarsAstNodes;
                var localsSubst = substituton[method.Key];
                foreach (NameNode localVar in method.Value)
                    localVarsAstNodes.Add(new Tuple<string, List<AstNode>>(localsSubst[localVar.Name], GetResolvedNodes(ResolveResultType.Local, localVar.Node)));
            }

            RenameOrRemoveNodes(astSubstitution, true, Options.LocalVarsCompressing);
        }