KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > incava > java > ASTDumper


1 package org.incava.java;
2
3 import java.io.*;
4 import java.util.*;
5 import net.sourceforge.pmd.ast.*;
6
7
8 public class ASTDumper
9 {
10     public static void main(String JavaDoc[] args)
11     {
12         long totalInitTime = 0;
13         long totalParseTime = 0;
14         long totalDumpTime = 0;
15
16         JavaParser parser = null;
17         int ai = 0;
18         boolean astDump = false;
19         
20         if (ai < args.length && args[ai].equals("--dump")) {
21             astDump = true;
22             ++ai;
23         }
24
25         for (; ai < args.length; ++ai) {
26             String JavaDoc filename = args[ai];
27             long initTime;
28
29             // System.out.println("Reading from file " + filename + " . . .");
30
try {
31                 long initStartTime = System.currentTimeMillis();
32                 JavaCharStream jcs = new JavaCharStream(new FileInputStream(filename));
33                 if (parser == null) {
34                     parser = new JavaParser(jcs);
35                 }
36                 else {
37                     parser.ReInit(jcs);
38                 }
39                 long initStopTime = System.currentTimeMillis();
40                 initTime = initStopTime - initStartTime;
41                 totalInitTime += initTime;
42             }
43             catch (FileNotFoundException e) {
44                 System.out.println("File not found: " + filename);
45                 continue;
46             }
47
48             try {
49                 long parseStartTime = System.currentTimeMillis();
50                 ASTCompilationUnit cu = parser.CompilationUnit();
51                 
52                 long parseStopTime = System.currentTimeMillis();
53                 long parseTime = parseStopTime - parseStartTime;
54
55                 totalParseTime += parseTime;
56
57                 long dumpTime = 0;
58
59                 if (astDump) {
60                     long dumpStartTime = System.currentTimeMillis();
61
62                     cu.dump("");
63
64                     long dumpStopTime = System.currentTimeMillis();
65                     dumpTime = dumpStopTime - dumpStartTime;
66                     totalDumpTime += dumpTime;
67                 }
68
69                 System.out.println(" " + filename);
70                 System.out.println(" init time : " + initTime + " ms.");
71                 System.out.println(" parse time: " + parseTime + " ms.");
72                 if (astDump) {
73                     System.out.println(" dump time : " + dumpTime + " ms.");
74                 }
75                 System.out.println(" total time: " + (initTime + parseTime) + " ms.");
76             }
77             catch (ParseException e) {
78                 System.out.println(e.getMessage());
79                 System.out.println("Encountered errors during parse.");
80             }
81         }
82
83         System.out.println(" " + args.length + " files");
84         System.out.println(" init time : " + totalInitTime + " ms.");
85         System.out.println(" parse time: " + totalParseTime + " ms.");
86         if (astDump) {
87             System.out.println(" dump time : " + totalDumpTime + " ms.");
88         }
89         System.out.println(" total time: " + (totalInitTime + totalParseTime + totalDumpTime) + " ms.");
90     }
91
92 }
93
Popular Tags