Title: Message
The ant tasks do not work with Javacc 3.x as the main class has changed as well as JavaCC.zip is no longer used (it is not javacc.jar)...
--- 
./apache-ant-1.5.3-1/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java
     2003-04-16 05:28:26.000000000 -0400
+++ 
./src/1.5.3.1/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java
    2003-07-08 16:46:58.000000000 -0400
@@ -275,7 +275,7 @@
 
     public JavaCC() {
         cmdl.setVm(JavaEnvUtils.getJreExecutable("java"));
-        cmdl.setClassname("COM.sun.labs.javacc.Main");
+        //cmdl.setClassname("COM.sun.labs.javacc.Main");
     }
 
     public void execute() throws BuildException {
@@ -311,7 +311,7 @@
         cmdl.createArgument().setValue(target.getAbsolutePath());
 
         final Path classpath = cmdl.createClasspath(project);
-        final File javaccJar = JavaCC.getArchiveFile(javaccHome);
+        final File javaccJar = JavaCC.getArchiveFile(javaccHome,cmdl);
         classpath.createPathElement().setPath(javaccJar.getAbsolutePath());
         classpath.addJavaRuntime();
 
@@ -330,20 +330,29 @@
      * could not be found despite attemps to do so.
      * @return the file object pointing to the JavaCC archive.
      */
-    protected static File getArchiveFile(File home) throws BuildException {
+    protected static File getArchiveFile(File home,CommandlineJava cmdline) 
throws BuildException {
         if (home == null || !home.isDirectory()) {
             throw new BuildException("JavaCC home must be a valid directory.");
         }
         // javacc prior to 2.0
         File f = new File(home, "JavaCC.zip");
         if (f.exists()){
+            cmdline.setClassname("COM.sun.labs.javacc.Main");
           return f;
         }
         // javacc install 2.0+
         f = new File(home, "bin/lib/JavaCC.zip");
         if (f.exists()){
+            cmdline.setClassname("COM.sun.labs.javacc.Main");
           return f;
         }
+        // javacc install 3.x+
+        f = new File(home, "bin/lib/javacc.jar");
+        if (f.exists()){
+            cmdline.setClassname("org.javacc.parser.Main");
+          return f;
+        }
+
         throw new BuildException("Could not find a path to JavaCC.zip from '" 
+ home + "'.");
     }
 
--- 
./apache-ant-1.5.3-1/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java
     2003-04-16 05:28:20.000000000 -0400
+++ 
./src/1.5.3.1/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJTree.java
    2003-07-09 09:44:19.000000000 -0400
@@ -244,7 +244,7 @@
         cmdl.createArgument().setValue(target.getAbsolutePath());
 
         final Path classpath = cmdl.createClasspath(getProject());
-        final File javaccJar = JavaCC.getArchiveFile(javaccHome);
+        final File javaccJar = JavaCC.getArchiveFile(javaccHome,cmdl);
         classpath.createPathElement().setPath(javaccJar.getAbsolutePath());
         classpath.addJavaRuntime();
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to