Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

DecompilerDriver.java

00001 package edu.ksu.cis.bandera.jjjc.decompiler;
00002 
00003 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00004  * Bandera, a Java(TM) analysis and transformation toolkit           *
00005  * Copyright (C) 2000 Roby Joehanes (robbyjo@cis.ksu.edu)            *
00006  * All rights reserved.                                              *
00007  *                                                                   *
00008  * This work was done as a project in the SAnToS Laboratory,         *
00009  * Department of Computing and Information Sciences, Kansas State    *
00010  * University, USA (http://www.cis.ksu.edu/santos).                  *
00011  * It is understood that any modification not identified as such is  *
00012  * not covered by the preceding statement.                           *
00013  *                                                                   *
00014  * This work is free software; you can redistribute it and/or        *
00015  * modify it under the terms of the GNU Library General Public       *
00016  * License as published by the Free Software Foundation; either      *
00017  * version 2 of the License, or (at your option) any later version.  *
00018  *                                                                   *
00019  * This work is distributed in the hope that it will be useful,      *
00020  * but WITHOUT ANY WARRANTY; without even the implied warranty of    *
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *
00022  * Library General Public License for more details.                  *
00023  *                                                                   *
00024  * You should have received a copy of the GNU Library General Public *
00025  * License along with this toolkit; if not, write to the             *
00026  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,      *
00027  * Boston, MA  02111-1307, USA.                                      *
00028  *                                                                   *
00029  * Java is a trademark of Sun Microsystems, Inc.                     *
00030  *                                                                   *
00031  * To submit a bug report, send a comment, or get the latest news on *
00032  * this project and other SAnToS projects, please visit the web-site *
00033  *                http://www.cis.ksu.edu/santos                      *
00034  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00035 import ca.mcgill.sable.soot.*;
00036 import ca.mcgill.sable.soot.jimple.*;
00037 import ca.mcgill.sable.util.*;
00038 
00039 import edu.ksu.cis.bandera.annotation.*;
00040 import edu.ksu.cis.bandera.jjjc.*;
00041 import edu.ksu.cis.bandera.jjjc.node.*;
00042 import edu.ksu.cis.bandera.specification.assertion.datastructure.*;
00043 
00044 import java.io.*;
00045 import java.util.*;
00046 /**
00047  * Decompiler driver, for internal testing only.
00048  * If you'd like to use the decompiler in a stand-alone manner, i.e. to test
00049  * the functionality of the Decompiler package, you can refer to DecompilerDriver class
00050  * and run the main method.
00051  * @author <a href="mailto:robbyjo@cis.ksu.edu">Roby Joehanes</a>
00052  * @version 0.4.21
00053 **/
00054 public class DecompilerDriver {
00055 public static void main(String[] args)
00056 {
00057 
00058     // Set the compiler ready
00059     CompilationManager.setDoBSL(false);
00060     CompilationManager.reset();
00061     CompilationManager.setFilename("InheritScheduler.java");
00062     CompilationManager.setClasspath(".");
00063     CompilationManager.setIncludedPackagesOrTypes(new String[0]);
00064 
00065     // Do the real stuff: Compile
00066     try
00067     {
00068         CompilationManager.compile();
00069         if (CompilationManager.getExceptions().size() > 0)
00070         {
00071             throw new Exception("Compilation failed!\n");
00072         }
00073         System.out.println("Compiled successfully!\n");
00074     } catch (Exception e)
00075     {
00076         System.out.println("Compilation failed!\n");
00077     }
00078 
00079     // Then decompile!
00080     DecompilerUtil.setDebugInfo(false);
00081     Decompiler decompiler = new Decompiler(CompilationManager.getCompiledClasses(), CompilationManager.getAnnotationManager(),
00082         "E:\\HOME\\Robbyjo\\Bandera\\Output", "java");
00083     decompiler.decompile();
00084 
00085     /*
00086     Hashtable tbl = decompiler.getLineToAnnotationTable();
00087 
00088     for (Enumeration e = tbl.keys(); e.hasMoreElements();)
00089     {
00090         DecompilerPair p = (DecompilerPair) e.nextElement();
00091         Annotation an = (Annotation) tbl.get(p);
00092         if (an != null)
00093         System.out.println(p.toString()+" = "+an.toString());
00094         else
00095         System.out.println(p.toString()+" = null");
00096     }*/
00097     //CompilationManager.getAnnotationManager().setFilenameLinePairAnnotationTable(decompiler.getLineToAnnotationTable());
00098 }
00099 public String readln()
00100 {
00101     StringBuffer s = new StringBuffer();
00102     char c;
00103     try
00104     {
00105         while ((c = (char) System.in.read()) != '\n')
00106             s.append(c);
00107     } catch (Exception e)
00108     {
00109         System.out.println("Error: " + e.toString());
00110         return null;
00111     }
00112     return s.toString();
00113 }
00114 }

Generated at Thu Feb 7 06:43:25 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001