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]