public void usageHeader(PrintStream out) { out.println( "usage: " + extension.compilerName() + " [options] " + "<source-file>." + extension.fileExtensions()[0] + " ..."); out.println("where [options] includes:"); // usageForFlag(out, "@<file>", "read options from <file>"); }
public static void main(String args[]) throws IllegalArgumentException, SemanticException { String extension = "jl"; String className; if (args.length == 3 && args[0].equals("-ext")) extension = args[1]; if ((extension == null && args.length != 1) || (extension != null && args.length != 3)) { System.err.println( "Usage: " + "polyglot.util.typedump.Main " + "[-ext <extension>] <classname>"); System.exit(1); } if (extension == null) className = args[0]; else className = args[2]; ExtensionInfo extInfo = null; String extClassName = "polyglot.ext." + extension + ".ExtensionInfo"; Class<?> extClass = null; try { extClass = Class.forName(extClassName); } catch (ClassNotFoundException e) { try { extClass = Class.forName(extension); } catch (ClassNotFoundException e2) { System.err.println( "Extension " + extension + " not found: could not find class " + extClassName + "."); System.err.println(e2.getMessage()); System.exit(1); } } try { extInfo = (ExtensionInfo) extClass.newInstance(); } catch (Exception e) { System.err.println( "Extension " + extension + " could not be loaded: " + "could not instantiate " + extClassName + "."); System.exit(1); } try { // now try to establish the type system correctly. Options options = extInfo.getOptions(); Options.global = options; configureOptions(options); StdErrorQueue eq = new StdErrorQueue(System.err, 100, extInfo.compilerName()); new Compiler(extInfo, eq); TypeSystem ts = extInfo.typeSystem(); TypeDumper t = TypeDumper.load(className, ts, extInfo.version()); CodeWriter cw = new OptimalCodeWriter(System.out, 100); t.dump(cw); cw.newline(0); try { cw.flush(); } catch (java.io.IOException exn) { System.err.println(exn.getMessage()); } } catch (ClassNotFoundException exn) { System.err.println("Could not load .class: " + className); System.err.println(exn.getMessage()); } catch (NoSuchFieldException exn) { System.err.println("Could not reflect jlc fields"); System.err.println(exn.getMessage()); } catch (SecurityException exn) { System.err.println("Security policy error."); System.err.println(exn.getMessage()); } }