You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2015/08/09 12:46:15 UTC

svn commit: r1694865 - in /lucene/dev/trunk/lucene: ./ expressions/ expressions/src/java/org/apache/lucene/expressions/js/

Author: uschindler
Date: Sun Aug  9 10:46:14 2015
New Revision: 1694865

URL: http://svn.apache.org/r1694865
Log:
LUCENE-6417: Cleanup ANTLR code generator

Added:
    lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/Javascript.g4
      - copied unchanged from r1694649, lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/Javascript.g
Removed:
    lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/Javascript.g
    lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/Javascript.tokens
    lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptLexer.tokens
Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/expressions/build.xml
    lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptLexer.java
    lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptParser.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1694865&r1=1694864&r2=1694865&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Sun Aug  9 10:46:14 2015
@@ -64,7 +64,7 @@ Optimizations
 Other
 
 * LUCENE-6417: Upgrade ANTLR used in expressions module to version 4.5.
-  (Jack Conradson via Uwe Schindler)
+  (Jack Conradson, Uwe Schindler)
 
 ======================= Lucene 5.3.0 =======================
 

Modified: lucene/dev/trunk/lucene/expressions/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/expressions/build.xml?rev=1694865&r1=1694864&r2=1694865&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/expressions/build.xml (original)
+++ lucene/dev/trunk/lucene/expressions/build.xml Sun Aug  9 10:46:14 2015
@@ -21,9 +21,6 @@
     Dynamically computed values to sort/facet/search on based on a pluggable grammar.
   </description>
 
-  <!-- some files for testing that do not have license headers -->
-  <property name="rat.excludes" value="**/*.tokens"/>
-
   <import file="../module-build.xml"/>
 
   <path id="classpath">
@@ -81,22 +78,19 @@
     <attribute name="package" />
     <attribute name="grammar" />
     <sequential>
-      <!-- delete parser and lexer so files will be generated -->
-      <delete>
-        <fileset dir="src/java/org/apache/lucene/expressions/@{package}">
-          <include name="@{grammar}Lexer.java" />
-          <include name="@{grammar}Parser.java" />
-        </fileset>
-      </delete>
       <local name="grammar.path"/>
-      <local name="grammar.matchpath"/>
-      <local name="-grammar.relative.path"/>
-      <local name="grammar.relative.path"/>
+      <patternset id="grammar.@{grammar}.patternset">
+        <include name="@{grammar}Lexer.java" />
+        <include name="@{grammar}Parser.java" />
+        <include name="@{grammar}Visitor.java" />
+        <include name="@{grammar}BaseVisitor.java" />
+      </patternset>
       <property name="grammar.path" location="src/java/org/apache/lucene/expressions/@{package}"/>
-      <!-- this is a hack for windows, because antlr writes absolute paths with double backslashes (no idea why...): -->
-      <replace-value property="grammar.matchpath" value="${grammar.path}${file.separator}" from="\" to="\\"/>
-      <property name="-grammar.relative.path" location="${grammar.path}" relative="true"/>
-      <replace-value property="grammar.relative.path" value="${-grammar.relative.path}${file.separator}" from="${file.separator}" to="/"/>
+      <!-- delete parser and lexer so files will be generated -->
+      <delete dir="${grammar.path}">
+        <patternset refid="grammar.@{grammar}.patternset"/>
+      </delete>
+      <!-- invoke ANTLR4 -->
       <java classname="org.antlr.v4.Tool" fork="true" failonerror="true" classpathref="antlr.classpath" taskname="antlr">
         <sysproperty key="file.encoding" value="UTF-8"/>
         <sysproperty key="user.language" value="en"/>
@@ -108,33 +102,30 @@
         <arg value="-visitor"/>
         <arg value="-o"/>
         <arg path="${grammar.path}"/>
-        <arg path="${grammar.path}/@{grammar}.g"/>
+        <arg path="${grammar.path}/@{grammar}.g4"/>
       </java>
-      <!-- replace absolute paths by relative ones -->
-      <replace file="${grammar.path}/@{grammar}Parser.java" token="${grammar.matchpath}" value="${grammar.relative.path}" encoding="UTF-8"/>
-      <replace file="${grammar.path}/@{grammar}Lexer.java" token="${grammar.matchpath}" value="${grammar.relative.path}" encoding="UTF-8"/>
-      <replace file="${grammar.path}/@{grammar}Visitor.java" token="${grammar.matchpath}" value="${grammar.relative.path}" encoding="UTF-8"/>
-      <replace file="${grammar.path}/@{grammar}BaseVisitor.java" token="${grammar.matchpath}" value="${grammar.relative.path}" encoding="UTF-8"/>
+      <!-- fileset with files to edit -->
+      <fileset id="grammar.fileset" dir="${grammar.path}">
+        <patternset refid="grammar.@{grammar}.patternset"/>
+      </fileset>
+      <!-- remove files that are not needed to compile or at runtime -->
+      <delete dir="${grammar.path}" includes="@{grammar}*.tokens"/>
       <!-- make the generated classes package private -->
-      <replace file="${grammar.path}/@{grammar}Parser.java" token="public class @{grammar}Parser" value="class @{grammar}Parser" encoding="UTF-8"/>
-      <replace file="${grammar.path}/@{grammar}Lexer.java" token="public class @{grammar}Lexer" value="class @{grammar}Lexer" encoding="UTF-8"/>
-      <replace file="${grammar.path}/@{grammar}Visitor.java" token="public interface @{grammar}Visitor" value="interface @{grammar}Visitor" encoding="UTF-8"/>
-      <replace file="${grammar.path}/@{grammar}BaseVisitor.java" token="public class @{grammar}BaseVisitor" value="class @{grammar}BaseVisitor" encoding="UTF-8"/>
-      <!-- nuke timestamps in generated files -->
-      <replaceregexp file="${grammar.path}/@{grammar}Parser.java" match=".*" replace="\/\/ ANTLR GENERATED CODE: DO NOT EDIT" encoding="UTF-8"/>
-      <replaceregexp file="${grammar.path}/@{grammar}Lexer.java" match=".*" replace="\/\/ ANTLR GENERATED CODE: DO NOT EDIT" encoding="UTF-8"/>
-      <replaceregexp file="${grammar.path}/@{grammar}Visitor.java" match=".*" replace="\/\/ ANTLR GENERATED CODE: DO NOT EDIT" encoding="UTF-8"/>
-      <replaceregexp file="${grammar.path}/@{grammar}BaseVisitor.java" match=".*" replace="\/\/ ANTLR GENERATED CODE: DO NOT EDIT" encoding="UTF-8"/>
+      <replaceregexp match="public ((interface|class) \Q@{grammar}\E\w+)" replace="\1" encoding="UTF-8">
+        <fileset refid="grammar.fileset"/>
+      </replaceregexp>
+      <!-- nuke timestamps/filenames in generated files -->
+      <replaceregexp match="\Q// Generated from \E.*" replace="\/\/ ANTLR GENERATED CODE: DO NOT EDIT" encoding="UTF-8">
+        <fileset refid="grammar.fileset"/>
+      </replaceregexp>
       <!-- remove tabs in antlr generated files -->
-      <replaceregexp file="${grammar.path}/@{grammar}Parser.java" match="\t" flags="g" replace="  " encoding="UTF-8"/>
-      <replaceregexp file="${grammar.path}/@{grammar}Lexer.java" match="\t" flags="g" replace="  " encoding="UTF-8"/>
-      <replaceregexp file="${grammar.path}/@{grammar}Visitor.java" match="\t" flags="g" replace="  " encoding="UTF-8"/>
-      <replaceregexp file="${grammar.path}/@{grammar}BaseVisitor.java" match="\t" flags="g" replace="  " encoding="UTF-8"/>
+      <replaceregexp match="\t" flags="g" replace="  " encoding="UTF-8">
+        <fileset refid="grammar.fileset"/>
+      </replaceregexp>
       <!-- fix line endings -->
-      <fixcrlf file="${grammar.path}/@{grammar}Parser.java"/>
-      <fixcrlf file="${grammar.path}/@{grammar}Lexer.java"/>
-      <fixcrlf file="${grammar.path}/@{grammar}Visitor.java"/>
-      <fixcrlf file="${grammar.path}/@{grammar}BaseVisitor.java"/>
+      <fixcrlf srcdir="${grammar.path}">
+        <patternset refid="grammar.@{grammar}.patternset"/>
+      </fixcrlf>
     </sequential>
   </macrodef>
 </project>

Modified: lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptLexer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptLexer.java?rev=1694865&r1=1694864&r2=1694865&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptLexer.java (original)
+++ lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptLexer.java Sun Aug  9 10:46:14 2015
@@ -83,7 +83,7 @@ class JavascriptLexer extends Lexer {
   }
 
   @Override
-  public String getGrammarFileName() { return "Javascript.g"; }
+  public String getGrammarFileName() { return "Javascript.g4"; }
 
   @Override
   public String[] getRuleNames() { return ruleNames; }

Modified: lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptParser.java?rev=1694865&r1=1694864&r2=1694865&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptParser.java (original)
+++ lucene/dev/trunk/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptParser.java Sun Aug  9 10:46:14 2015
@@ -72,7 +72,7 @@ class JavascriptParser extends Parser {
   }
 
   @Override
-  public String getGrammarFileName() { return "Javascript.g"; }
+  public String getGrammarFileName() { return "Javascript.g4"; }
 
   @Override
   public String[] getRuleNames() { return ruleNames; }