summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/TreeDumpVisitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/analysis/TreeDumpVisitor.java')
-rw-r--r--src/cuchaz/enigma/analysis/TreeDumpVisitor.java45
1 files changed, 38 insertions, 7 deletions
diff --git a/src/cuchaz/enigma/analysis/TreeDumpVisitor.java b/src/cuchaz/enigma/analysis/TreeDumpVisitor.java
index 05d0e6b..ac3e92d 100644
--- a/src/cuchaz/enigma/analysis/TreeDumpVisitor.java
+++ b/src/cuchaz/enigma/analysis/TreeDumpVisitor.java
@@ -10,6 +10,11 @@
10 ******************************************************************************/ 10 ******************************************************************************/
11package cuchaz.enigma.analysis; 11package cuchaz.enigma.analysis;
12 12
13import java.io.File;
14import java.io.FileWriter;
15import java.io.IOException;
16import java.io.Writer;
17
13import com.strobel.componentmodel.Key; 18import com.strobel.componentmodel.Key;
14import com.strobel.decompiler.languages.java.ast.Annotation; 19import com.strobel.decompiler.languages.java.ast.Annotation;
15import com.strobel.decompiler.languages.java.ast.AnonymousObjectCreationExpression; 20import com.strobel.decompiler.languages.java.ast.AnonymousObjectCreationExpression;
@@ -87,10 +92,42 @@ import com.strobel.decompiler.patterns.Pattern;
87 92
88public class TreeDumpVisitor implements IAstVisitor<Void, Void> 93public class TreeDumpVisitor implements IAstVisitor<Void, Void>
89{ 94{
95 private File m_file;
96 private Writer m_out;
97
98 public TreeDumpVisitor( File file )
99 {
100 m_file = file;
101 m_out = null;
102 }
103
104 @Override
105 public Void visitCompilationUnit( CompilationUnit node, Void ignored )
106 {
107 try
108 {
109 m_out = new FileWriter( m_file );
110 recurse( node, ignored );
111 m_out.close();
112 return null;
113 }
114 catch( IOException ex )
115 {
116 throw new Error( ex );
117 }
118 }
119
90 private Void recurse( AstNode node, Void ignored ) 120 private Void recurse( AstNode node, Void ignored )
91 { 121 {
92 // show the tree 122 // show the tree
93 System.out.println( getIndent( node ) + node.getClass().getSimpleName() + dumpUserData( node ) + " " + node.getRegion() ); 123 try
124 {
125 m_out.write( getIndent( node ) + node.getClass().getSimpleName() + dumpUserData( node ) + " " + node.getRegion() + "\n" );
126 }
127 catch( IOException ex )
128 {
129 throw new Error( ex );
130 }
94 131
95 // recurse 132 // recurse
96 for( final AstNode child : node.getChildren() ) 133 for( final AstNode child : node.getChildren() )
@@ -379,12 +416,6 @@ public class TreeDumpVisitor implements IAstVisitor<Void, Void>
379 } 416 }
380 417
381 @Override 418 @Override
382 public Void visitCompilationUnit( CompilationUnit node, Void ignored )
383 {
384 return recurse( node, ignored );
385 }
386
387 @Override
388 public Void visitPackageDeclaration( PackageDeclaration node, Void ignored ) 419 public Void visitPackageDeclaration( PackageDeclaration node, Void ignored )
389 { 420 {
390 return recurse( node, ignored ); 421 return recurse( node, ignored );