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]

Reply via email to