Author: wglass
Date: Fri Sep 23 10:50:40 2005
New Revision: 291173
URL: http://svn.apache.org/viewcvs?rev=291173&view=rev
Log:
add javacc parser task. resolves VELOCITY-222.
Modified:
jakarta/velocity/core/trunk/build/build.xml
Modified: jakarta/velocity/core/trunk/build/build.xml
URL:
http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/build/build.xml?rev=291173&r1=291172&r2=291173&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/build/build.xml (original)
+++ jakarta/velocity/core/trunk/build/build.xml Fri Sep 23 10:50:40 2005
@@ -62,6 +62,11 @@
value="org/apache/velocity/runtime/defaults"
/>
+
+ <!-- Needs to be configured with system location of javacc for parser task
-->
+ <property name="javacc.home" value="/javacc-3.2"/>
+
+
<!-- disabled for now == classpath issues
<taskdef name="fop" classname="Fop"/>
<taskdef name="xslt" classname="Xslt"/>
@@ -90,6 +95,8 @@
** env echos environment variables to screen
** prepare env creates build dir, copies source
** J2EE-error prepare message if J2EE missing but required
+ ** parser env calls jjtree and javacc
+ ** (requires javaCC 3.1+ and ant 1.6.x)
** compile prepare compiles non-J2EE source
** compile-J2EE prepare, J2EE-error compiles J2EE source
** compile-copy move non-J2EE classes out of the way.
@@ -179,6 +186,79 @@
*********************************************************
</echo>
</target>
+
+
+ <!-- =================================================================== -->
+ <!-- Calls jjtree and javacc -->
+ <!-- =================================================================== -->
+ <target name="parser" depends="env">
+ <echo>
+ ***********************************************************
+ ** Creating Parser.jj and Parser.java in source tree.
+ **
+ ** Note: ASTNode files generated by jjtree are
+ ** not generated with this task. To create new ASTNode files,
+ ** run jjtree manually then copy the relevant files into
+ ** the runtime/parser/node directory (deleting all other
+ ** generated files).
+ **
+ ***********************************************************
+ </echo>
+
+ <echo message="This task requires javacc 3.1+ and ant 1.6.x to be
installed."/>
+ <echo message="Checking javcc.home='${javacc.home}' and
ant.version='${ant.version}'."/>
+
+ <condition property="parser-task-runnable">
+ <and>
+ <available file="${javacc.home}" type="dir"/>
+
+ <!-- include a list of acceptable ant versions here -->
+ <or>
+ <contains string="${ant.version}" substring="1.6"/>
+ </or>
+ </and>
+ </condition>
+
+ <antcall target="jjtree" />
+ <antcall target="javacc" />
+ <antcall target="javacc-cleanup" />
+ <antcall target="javacc-missing" />
+
+ </target>
+
+
+ <target name="jjtree" if="parser-task-runnable">
+ <echo message="Running JJTree on Parser.jjt"/>
+ <jjtree
+
target="${src.java.dir}/org/apache/velocity/runtime/parser/Parser.jjt"
+
outputdirectory="${src.java.dir}/org/apache/velocity/runtime/parser/"
+ javacchome="${javacc.home}" buildnodefiles="false" />
+ </target>
+
+ <target name="javacc" if="parser-task-runnable">
+ <echo message="Running JavaCC on Parser.jj"/>
+ <javacc
target="${src.java.dir}/org/apache/velocity/runtime/parser/Parser.jj"
+ outputdirectory="${src.java.dir}/org/apache/velocity/runtime/parser/"
+ javacchome="${javacc.home}" />
+ </target>
+
+ <target name="javacc-cleanup" if="parser-task-runnable">
+ <delete>
+ <fileset dir="${src.java.dir}/org/apache/velocity/runtime/parser/">
+ <include name="AST*"/>
+ <include name="Node.java"/>
+ <include name="SimpleNode.java"/>
+ <include name="ParserVisitor.java"/>
+ </fileset>
+ </delete>
+ </target>
+
+ <target name="javacc-missing" unless="parser-task-runnable">
+ <echo message="Couldn't run javacc."/>
+ <echo message="JavaCC 3.1+ must be installed at
${javacc.home}."/>
+ <echo message="Ant must be version 1.6.x."/>
+ </target>
+
<!-- =================================================================== -->
<!-- Compiles the source directory without the J2EE dependent files -->
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]