示例#1
0
文件: Tool.java 项目: siwiwit/EMFText
  /**
   * A list of dependency generators that are accumulated aaaas (and if) the tool is required to
   * sort the provided grammars into build dependency order. protected Map<String,
   * BuildDependencyGenerator> buildDependencyGenerators;
   */
  public static void main(String[] args) {
    Tool antlr = new Tool(args);

    if (!exitNow) {
      antlr.process();
      if (ErrorManager.getNumErrors() > 0) {
        System.exit(1);
      }
      System.exit(0);
    }
  }
 /** Return true if all is ok, no errors */
 protected boolean antlr(
     String fileName, String grammarFileName, String grammarStr, boolean debug) {
   boolean allIsWell = true;
   mkdir(tmpdir);
   writeFile(tmpdir, fileName, grammarStr);
   try {
     final List options = new ArrayList();
     if (debug) {
       options.add("-debug");
     }
     options.add("-o");
     options.add(tmpdir);
     options.add("-lib");
     options.add(tmpdir);
     options.add(new File(tmpdir, grammarFileName).toString());
     final String[] optionsA = new String[options.size()];
     options.toArray(optionsA);
     /*
     final ErrorQueue equeue = new ErrorQueue();
     ErrorManager.setErrorListener(equeue);
     */
     Tool antlr = newTool(optionsA);
     antlr.process();
     ANTLRErrorListener listener = ErrorManager.getErrorListener();
     if (listener instanceof ErrorQueue) {
       ErrorQueue equeue = (ErrorQueue) listener;
       if (equeue.errors.size() > 0) {
         allIsWell = false;
         System.err.println("antlr reports errors from " + options);
         for (int i = 0; i < equeue.errors.size(); i++) {
           Message msg = (Message) equeue.errors.get(i);
           System.err.println(msg);
         }
         System.out.println("!!!\ngrammar:");
         System.out.println(grammarStr);
         System.out.println("###");
       }
     }
   } catch (Exception e) {
     allIsWell = false;
     System.err.println("problems building grammar: " + e);
     e.printStackTrace(System.err);
   }
   return allIsWell;
 }
 protected Tool newTool() {
   Tool tool = new Tool();
   tool.setOutputDirectory(tmpdir);
   return tool;
 }
 protected Tool newTool(String[] args) {
   Tool tool = new Tool(args);
   tool.setOutputDirectory(tmpdir);
   return tool;
 }