You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2003/05/21 15:29:55 UTC

cvs commit: ant/src/main/org/apache/tools/ant/taskdefs/optional ANTLR.java

bodewig     2003/05/21 06:29:55

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional ANTLR.java
  Log:
  What has been -traceTreeWalker in ANTLR 2.7.0 has become
  -traceTreeParser in 2.7.2
  
  PR: 20020
  
  Revision  Changes    Path
  1.27      +25 -4     ant/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
  
  Index: ANTLR.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- ANTLR.java	18 Apr 2003 23:40:24 -0000	1.26
  +++ ANTLR.java	21 May 2003 13:29:55 -0000	1.27
  @@ -59,6 +59,7 @@
   import java.io.File;
   import java.io.FileReader;
   import java.io.IOException;
  +import org.apache.tools.ant.AntClassLoader;
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.Task;
  @@ -337,7 +338,11 @@
               commandline.createArgument().setValue("-traceLexer");
           }
           if (traceTreeWalker) {
  -            commandline.createArgument().setValue("-traceTreeWalker");
  +            if (is272()) {
  +                commandline.createArgument().setValue("-traceTreeParser");
  +            } else {
  +                commandline.createArgument().setValue("-traceTreeWalker");
  +            }
           }
           if (debug) {
               commandline.createArgument().setValue("-debug");
  @@ -385,9 +390,9 @@
           PumpStreamHandler psh = 
               new PumpStreamHandler(new LogOutputStream(this, Project.MSG_INFO),
                                     new TeeOutputStream(
  -                                      new LogOutputStream(this, 
  -                                                          Project.MSG_WARN),
  -                                      bos)
  +                                                      new LogOutputStream(this, 
  +                                                                          Project.MSG_WARN),
  +                                                      bos)
                                     );
           Execute exe = new Execute(psh, null);
           exe.setAntRun(getProject());
  @@ -405,5 +410,21 @@
               } catch (IOException e) {
               }
           }
  +    }
  +
  +    /**
  +     * Whether the antlr version is 2.7.2 (or higher).
  +     *
  +     * @since Ant 1.6
  +     */
  +    protected boolean is272() {
  +        try {
  +            AntClassLoader l = new AntClassLoader(getProject(),
  +                                                  commandline.getClasspath());
  +            l.loadClass("antlr.Version");
  +            return true;
  +        } catch (ClassNotFoundException e) {
  +            return false;
  +        } // end of try-catch
       }
   }