Jump to content

Java CUP

From EggeWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

I had to make a few changes to CUP in order for it to work in my environment. I submitted the patches to Michael Petter, but I don't know if they will be included in his next build. So, here's the patches here in case you have to patch this yourself:

java_cup.anttask.CUPTask.java

111,112c111,117
<       if (!(new File(srcfile)).exists()) throw new BuildException("Input file not found: srcfile=\""+srcfile+"\" ");
<       createArg().setValue(srcfile);
---
>       File file = new File(srcfile);
>       if (!file.exists()) throw new BuildException("Input file not found: srcfile=\""+srcfile+"\" ");
>       try {
>               createArg().setValue(file.getCanonicalPath());
>       } catch (java.io.IOException e) {
>               throw new BuildException("Input file path not found: srcfile=\""+srcfile+"\" ");
>       }
166a172
>       if (path.startsWith("file:/")) path=path.substring(6);

I changed the compile task to build 1.4 class files:

  <target name="compile" depends="jflex">
    <copy todir="${java}"><fileset dir="${src}"></fileset></copy>
    <javac srcdir="${java}" destdir="${classes}" verbose="off" listfiles="off" debug="on" target="1.4" source="1.4">
      <!--compilerarg value="-Xlint:unchecked" /-->
      <classpath refid="libraries"/>
    </javac>
  </target>


Since the code doesn't require 1.5, it might be nice to compile it in a 1.4 compatible format.