Esempio n. 1
0
 static void RunTransformsAndGenerateCode(AstBuilder astBuilder, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations(null);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
 }
Esempio n. 2
0
 private void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output,
                                           DecompilationOptions options, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations(transformAbortCondition);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
     //if (options.DecompilerSettings.ShowXmlDocumentation) {
     //    AddXmlDocTransform.Run(astBuilder.CompilationUnit);
     //}
     astBuilder.GenerateCode(output);
 }
Esempio n. 3
0
        /// <summary>
        /// Applies a transform to an AST, producing a new AST.
        /// </summary>
        /// <param name="transform">The transform to apply.</param>
        /// <param name="ast">The AST.</param>
        /// <returns>A new AST that results from the application of the transform.</returns>
        public static Ast Apply(this IAstTransform transform, Ast ast)
        {
            if (transform == null)
            {
                throw new ArgumentNullException(nameof(transform));
            }

            if (ast == null)
            {
                throw new ArgumentNullException(nameof(ast));
            }

            var transformer = transform.CreateTransformer();

            ast.Accept(transformer);
            return(transformer.NewAst);
        }
Esempio n. 4
0
 void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null)
 {
     RunTransformsStart(astBuilder);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
     RunTransformsEnd(astBuilder, options);
     GenerateCode(astBuilder, output);
 }
Esempio n. 5
0
 public void Add(IAstTransform trans)
 {
     transforms.Add(trans);
 }
Esempio n. 6
0
 void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations(transformAbortCondition);
     if (additionalTransform != null) {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
     if (options.DecompilerSettings.ShowXmlDocumentation) {
         try {
             AddXmlDocTransform.Run(astBuilder.SyntaxTree);
         } catch (XmlException ex) {
             string[] msg = (" Exception while reading XmlDoc: " + ex.ToString()).Split(new[]{'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries);
             var insertionPoint = astBuilder.SyntaxTree.FirstChild;
             for (int i = 0; i < msg.Length; i++)
                 astBuilder.SyntaxTree.InsertChildBefore(insertionPoint, new Comment(msg[i], CommentType.Documentation), Roles.Comment);
         }
     }
     astBuilder.GenerateCode(output);
 }
Esempio n. 7
0
		public void Transform(IAstTransform transform)
		{
			transform.Run(astCompileUnit);
		}
Esempio n. 8
0
		void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null) {
			astBuilder.RunTransformations(transformAbortCondition);
			if (additionalTransform != null) {
				additionalTransform.Run(astBuilder.SyntaxTree);
			}
			AddXmlDocumentation(options.DecompilerSettings, astBuilder);
			astBuilder.GenerateCode(output);
		}
Esempio n. 9
0
 void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations(transformAbortCondition);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
     if (options.DecompilerSettings.ShowXmlDocumentation)
     {
         try {
             AddXmlDocTransform.Run(astBuilder.SyntaxTree);
         } catch (XmlException ex) {
             string[] msg            = (" Exception while reading XmlDoc: " + ex.ToString()).Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
             var      insertionPoint = astBuilder.SyntaxTree.FirstChild;
             for (int i = 0; i < msg.Length; i++)
             {
                 astBuilder.SyntaxTree.InsertChildBefore(insertionPoint, new Comment(msg[i], CommentType.Documentation), Roles.Comment);
             }
         }
     }
     astBuilder.GenerateCode(output);
 }
Esempio n. 10
0
		void RunTransformsAndGenerateCode(ref BuilderState state, ITextOutput output, DecompilationContext ctx, IAstTransform additionalTransform = null) {
			var astBuilder = state.AstBuilder;
			astBuilder.RunTransformations(transformAbortCondition);
			if (additionalTransform != null) {
				additionalTransform.Run(astBuilder.SyntaxTree);
			}
			AddXmlDocumentation(ref state, langSettings.Settings, astBuilder);
			astBuilder.GenerateCode(output);
		}
Esempio n. 11
0
        void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null)
        {
            astBuilder.RunTransformations(transformAbortCondition);
            if (additionalTransform != null)
            {
                additionalTransform.Run(astBuilder.SyntaxTree);
            }

            GenerateCode(astBuilder, output);
        }
Esempio n. 12
0
        void RunTransformsAndGenerateCode(ref BuilderState state, IDecompilerOutput output, DecompilationContext ctx, IAstTransform additionalTransform = null)
        {
            var astBuilder = state.AstBuilder;

            astBuilder.RunTransformations(transformAbortCondition);
            if (additionalTransform != null)
            {
                additionalTransform.Run(astBuilder.SyntaxTree);
            }
            AddXmlDocumentation(ref state, langSettings.Settings, astBuilder);
            astBuilder.GenerateCode(output);
        }
Esempio n. 13
0
 void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations(transformAbortCondition);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
     astBuilder.GenerateCode(output);
 }
Esempio n. 14
0
		void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationOptions options, IAstTransform additionalTransform = null)
		{
			astBuilder.RunTransformations(transformAbortCondition);
			if (additionalTransform != null) {
				additionalTransform.Run(astBuilder.CompilationUnit);
			}
			if (options.DecompilerSettings.ShowXmlDocumentation) {
				AddXmlDocTransform.Run(astBuilder.CompilationUnit);
			}
			astBuilder.GenerateCode(output);
		}
Esempio n. 15
0
 private static void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, IAstTransform additionalTransform = null)
 {
     astBuilder.GenerateCode(output);
 }
Esempio n. 16
0
        void RunTransformsAndGenerateCode(ref BuilderState state, IDecompilerOutput output, DecompilationContext ctx, IAstTransform additionalTransform = null)
        {
            var astBuilder = state.AstBuilder;

            astBuilder.RunTransformations(transformAbortCondition);
            if (additionalTransform != null)
            {
                additionalTransform.Run(astBuilder.SyntaxTree);
            }
            CSharpDecompiler.AddXmlDocumentation(ref state, langSettings.Settings, astBuilder);
            var csharpUnit = astBuilder.SyntaxTree;

            csharpUnit.AcceptVisitor(new ICSharpCode.NRefactory.CSharp.InsertParenthesesVisitor()
            {
                InsertParenthesesForReadability = true
            });
            var unit             = csharpUnit.AcceptVisitor(new CSharpToVBConverterVisitor(state.AstBuilder.Context.CurrentModule, new ILSpyEnvironmentProvider(state.State.XmlDoc_StringBuilder)), null);
            var outputFormatter  = new VBTextOutputFormatter(output);
            var formattingPolicy = new VBFormattingOptions();

            unit.AcceptVisitor(new OutputVisitor(outputFormatter, formattingPolicy), null);
        }
Esempio n. 17
0
 void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationContext ctx, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations(transformAbortCondition);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.SyntaxTree);
     }
     AddXmlDocumentation(langSettings.Settings, astBuilder);
     astBuilder.GenerateCode(output);
 }
 void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilerSettings settings, IAstTransform additionalTransform = null)
 {
     astBuilder.RunTransformations();//transformAbortCondition);
     if (additionalTransform != null)
     {
         additionalTransform.Run(astBuilder.CompilationUnit);
     }
     if (settings.ShowXmlDocumentation)
     {
         //AddXmlDocTransform.Run(astBuilder.CompilationUnit);
     }
     astBuilder.GenerateCode(output);
 }
Esempio n. 19
0
		void RunTransformsAndGenerateCode(AstBuilder astBuilder, ITextOutput output, DecompilationContext ctx, IAstTransform additionalTransform = null) {
			astBuilder.RunTransformations(transformAbortCondition);
			if (additionalTransform != null) {
				additionalTransform.Run(astBuilder.SyntaxTree);
			}
			CSharpLanguage.AddXmlDocumentation(langSettings.Settings, astBuilder);
			var csharpUnit = astBuilder.SyntaxTree;
			csharpUnit.AcceptVisitor(new ICSharpCode.NRefactory.CSharp.InsertParenthesesVisitor() { InsertParenthesesForReadability = true });
			var unit = csharpUnit.AcceptVisitor(new CSharpToVBConverterVisitor(new ILSpyEnvironmentProvider()), null);
			var outputFormatter = new VBTextOutputFormatter(output);
			var formattingPolicy = new VBFormattingOptions();
			unit.AcceptVisitor(new OutputVisitor(outputFormatter, formattingPolicy), null);
		}