bodewig     2003/04/01 06:44:00

  Modified:    .        WHATSNEW
               docs/manual/OptionalTasks antlr.html
               src/main/org/apache/tools/ant/taskdefs/optional ANTLR.java
  Log:
  Recompile grammar if supergrammar has changed.
  
  PR: 12961
  
  Revision  Changes    Path
  1.383     +3 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.382
  retrieving revision 1.383
  diff -u -r1.382 -r1.383
  --- WHATSNEW  31 Mar 2003 12:27:13 -0000      1.382
  +++ WHATSNEW  1 Apr 2003 14:44:00 -0000       1.383
  @@ -76,6 +76,9 @@
   * The <stripjavacomments> filter sometimes removed parts of string
     constants.  Bugzilla Report 17441.
   
  +* <antlr> will now recompile your grammar if the supergrammar has
  +  changed.  Bugzilla Report 12691.
  +
   Other changes:
   --------------
   * Shipped XML parser is now Xerces 2.4.0
  
  
  
  1.11      +12 -4     ant/docs/manual/OptionalTasks/antlr.html
  
  Index: antlr.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/OptionalTasks/antlr.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- antlr.html        4 Sep 2002 11:05:18 -0000       1.10
  +++ antlr.html        1 Apr 2003 14:44:00 -0000       1.11
  @@ -21,10 +21,11 @@
     the grammar file.
   </p>
   <p>
  -  This task only invokes ANTLR if the grammar file is newer than the 
generated
  -  files.
  +  This task only invokes ANTLR if the grammar file (or the
  +  supergrammar specified by the glib attribute) is newer than the
  +  generated files.
   </p>
  -<p>
  +<p>Antlr 2.7.1 Note:
   <i>
     To successfully run ANTLR, your best option is probably to build the whole
     jar with the provided script <b>mkalljar</b> and drop the resulting jar 
(about 300KB)
  @@ -33,6 +34,13 @@
     to your classpath as described in ANTLR <tt>install.html</tt> document.
   </i>
   </p>
  +<p>Antlr 2.7.2 Note:
  +<i>
  +  Instead of the above, you will need antlrall.jar that can be created
  +  by the <b>antlr-all.jar</b> target of the Makefile provided with the
  +  download.
  +</i>
  +</p>
   
   <h3>Parameters</h3>
   <table border="1" cellpadding="2" cellspacing="0">
  @@ -170,7 +178,7 @@
   </p>
   <hr>
   
  -<p align="center">Copyright &copy; 2000-2002 Apache Software Foundation. All 
rights
  +<p align="center">Copyright &copy; 2000-2003 Apache Software Foundation. All 
rights
   Reserved.</p>
   
   </body>
  
  
  
  1.23      +12 -4     
ant/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
  
  Index: ANTLR.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- ANTLR.java        1 Apr 2003 14:33:28 -0000       1.22
  +++ ANTLR.java        1 Apr 2003 14:44:00 -0000       1.23
  @@ -276,10 +276,18 @@
           validateAttributes();
           //TODO: use ANTLR to parse the grammer file to do this.
           File generatedFile = getGeneratedFile();
  -        if (target.lastModified() > generatedFile.lastModified()) {
  -            log("Compiling " + target + " as it is newer than " 
  -                + generatedFile, Project.MSG_VERBOSE);
  -
  +        boolean targetIsOutOfDate = 
  +            target.lastModified() > generatedFile.lastModified();
  +        boolean superGrammarIsOutOfDate = superGrammar != null &&
  +            (new File(superGrammar).lastModified() > 
generatedFile.lastModified());
  +        if (targetIsOutOfDate || superGrammarIsOutOfDate) {
  +            if (targetIsOutOfDate) {
  +                log("Compiling " + target + " as it is newer than " 
  +                    + generatedFile, Project.MSG_VERBOSE);
  +            } else if (superGrammarIsOutOfDate) {
  +                log("Compiling " + target + " as " + superGrammar
  +                    + " is newer than " + generatedFile, 
Project.MSG_VERBOSE);
  +            }
               populateAttributes();
               commandline.createArgument().setValue(target.toString());
   
  
  
  

Reply via email to