Package EDU.purdue.jtb.syntaxtree

Examples of EDU.purdue.jtb.syntaxtree.Node


   private static String version = Globals.version;
   private static String scriptName = Globals.scriptName;

   public static void main(String args[]) {
      JTBParser parser;
      Node root;

      try { if ( !processCommandLine(args) ) return; }
      catch (InvalidCommandLineException e) {
         System.err.println(progName + ":  " + e.getMessage());
         return;
      }
      catch (Exception e) { Errors.hardErr(e.getMessage()); }

      System.err.println(progName + " version " + version);
      System.err.println(progName + ":  Reading from " + Globals.inFilename +
                         "...");
      parser = new JTBParser(in);

      try {
         root = parser.JavaCCInput();
         System.err.println(progName + ":  Input file parsed successfully.");

         //
         // Perform actions based on command-line flags
         //
         ClassGenerator vcg = new ClassGenerator();
         Vector list;
         FileGenerator gen = null;

         Errors.resetCounts();

         if ( !Globals.noSemanticCheck ) {
            root.accept(new SemanticChecker());

            if ( Errors.errorCount() > 0 ) {
               Errors.printSummary();
               return;
            }
         }

         root.accept(vcg);              // create the class list
         list = vcg.getClassList();

         if ( Errors.errorCount() > 0 ) {
            Errors.printSummary();
            return;
         }

         if ( Globals.printGrammarToOut ) root.accept(new Printer(System.out));
         if ( Globals.printClassList ) {
            gen = new FileGenerator(list);
            System.out.println("\nThe classes generated and the fields each " +
                               "contains are as follows:\n");
            gen.printClassList(new PrintWriter(System.out, true));
         }

         if ( Globals.generateFiles ) {
            Annotator annotator;

            try {
               root.accept(new Annotator());

               if ( Errors.errorCount() > 0 ) {
                  Errors.printSummary();
                  return;
               }

               System.err.println(progName + ":  \"" + Globals.outFilename +
                                  "\" generated to current directory.");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" + Globals.outFilename +
                                  "\" already exists.  Won't overwrite.");
            }

            if ( gen == null ) {
               gen = new FileGenerator(list);

               if ( Errors.errorCount() > 0 ) {
                  Errors.printSummary();
                  return;
               }
            }

            try { gen.generateAutoClassFiles(); }
            catch (FileExistsException e) {
               System.err.println(progName + ":  One or more of the automatic "+
                  "node class files already exists.  Won't overwrite.");
            }

            try {
               gen.generateClassFiles();
               System.err.println(progName + ":  Syntax tree Java source " +
                  "files generated to directory \"" + Globals.nodeDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  One or more of the generated "+
                  "node class files already exists.  Won't overwrite.");
            }
     
      System.err.println();

            try {
               gen.generateVisitorFile();
               System.err.println(progName + ":  \"" + Globals.GJVisitorName +
                  ".java\" generated " + "to directory \"" +
                  Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" + Globals.GJVisitorName +
                  "\" already exists.  Won't overwrite.");
            }

      try {
               new OldFileGenerator(list).generateVisitorFile();
               System.err.println(progName + ":  \"" + Globals.visitorName +
                  ".java\" generated " + "to directory \"" +
                  Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" + Globals.visitorName +
                  "\" already exists.  Won't overwrite.");
            }

      try {
               new NoArguFileGenerator(list).generateVisitorFile();
               System.err.println(progName + ":  \"" + Globals.GJNoArguVisitorName +
                  ".java\" generated " + "to directory \"" +
                  Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" + Globals.GJNoArguVisitorName +
                  "\" already exists.  Won't overwrite.");
            }

      try {
               new VoidFileGenerator(list).generateVisitorFile();
               System.err.println(progName + ":  \"" + Globals.GJVoidVisitorName +
                  ".java\" generated " + "to directory \"" +
                  Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" + Globals.GJVoidVisitorName +
                  "\" already exists.  Won't overwrite.");
            }

            try {
               new GJDepthFirstVisitorBuilder(list).generateDepthFirstVisitor();
               System.err.println(progName + ":  \"" +
                  GJDepthFirstVisitorBuilder.outFilename + "\" " +
                  "generated to directory \"" + Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" +
                  GJDepthFirstVisitorBuilder.outFilename + "\" already exists.  "+
                  "Won't overwrite.");
            }

      try {
         new OldDepthFirstVisitorBuilder(list).generateDepthFirstVisitor();
               System.err.println(progName + ":  \"" +
                  OldDepthFirstVisitorBuilder.outFilename + "\" " +
                  "generated to directory \"" + Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" +
                  OldDepthFirstVisitorBuilder.outFilename + "\" already exists.  "+
                  "Won't overwrite.");
            }

            try {
               new GJNoArguDepthFirstBuilder(list).generateDepthFirstVisitor();
               System.err.println(progName + ":  \"" +
                  GJNoArguDepthFirstBuilder.outFilename + "\" " +
                  "generated to directory \"" + Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" +
                  GJNoArguDepthFirstBuilder.outFilename + "\" already exists.  "+
                  "Won't overwrite.");
            }

            try {
               new GJVoidDepthFirstBuilder(list).generateDepthFirstVisitor();
               System.err.println(progName + ":  \"" +
                  GJVoidDepthFirstBuilder.outFilename + "\" " +
                  "generated to directory \"" + Globals.visitorDir + "\".");
            }
            catch (FileExistsException e) {
               System.err.println(progName + ":  \"" +
                  GJDepthFirstVisitorBuilder.outFilename + "\" already exists.  "+
                  "Won't overwrite.");
            }

      System.err.println();

            if ( Globals.schemeToolkit ) {
               root.accept(new SchemeSemanticChecker());

               if ( Errors.errorCount() > 0 ) {
                  Errors.printSummary();
                  return;
               }
View Full Code Here

TOP

Related Classes of EDU.purdue.jtb.syntaxtree.Node

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.