1 /* 2 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package build.tools.jdwpgen; 27 28 import java.io.*; 29 30 class Main { 31 32 static String specSource; 33 static boolean genDebug = true; 34 usage()35 static void usage() { 36 System.err.println(); 37 System.err.println( 38 "java Main <spec_input> <options>..."); 39 System.err.println(); 40 System.err.println("Options:"); 41 System.err.println("-doc <doc_output>"); 42 System.err.println("-jdi <java_output>"); 43 System.err.println("-include <include_file_output>"); 44 } 45 main(String args[])46 public static void main(String args[]) throws IOException { 47 Reader reader = null; 48 PrintWriter doc = null; 49 PrintWriter jdi = null; 50 PrintWriter include = null; 51 52 // Parse arguments 53 for (int i = 0 ; i < args.length ; ++i) { 54 String arg = args[i]; 55 if (arg.startsWith("-")) { 56 String fn = args[++i]; 57 if (arg.equals("-doc")) { 58 doc = new PrintWriter(new FileWriter(fn)); 59 } else if (arg.equals("-jdi")) { 60 jdi = new PrintWriter(new FileWriter(fn)); 61 } else if (arg.equals("-include")) { 62 include = new PrintWriter(new FileWriter(fn)); 63 } else { 64 System.err.println("Invalid option: " + arg); 65 usage(); 66 return; 67 } 68 } else { 69 specSource = arg; 70 reader = new FileReader(specSource); 71 } 72 } 73 if (reader == null) { 74 System.err.println("<spec_input> must be specified"); 75 usage(); 76 return; 77 } 78 79 Parse parse = new Parse(reader); 80 RootNode root = parse.items(); 81 root.parentAndExtractComments(); 82 root.prune(); 83 root.constrain(new Context()); 84 if (doc != null) { 85 root.document(doc); 86 doc.close(); 87 } 88 if (jdi != null) { 89 root.genJava(jdi, 0); 90 jdi.close(); 91 } 92 if (include != null) { 93 root.genCInclude(include); 94 include.close(); 95 } 96 } 97 } 98