mirror of
https://github.com/apache/lucene.git
synced 2025-02-08 11:05:29 +00:00
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1696044 13f79535-47bb-0310-9956-ffa450edef68
179 lines
8.9 KiB
XML
179 lines
8.9 KiB
XML
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<project name="queryparser" default="default">
|
|
<description>
|
|
Query parsers and parsing framework
|
|
</description>
|
|
|
|
<import file="../module-build.xml"/>
|
|
|
|
<path id="classpath">
|
|
<pathelement path="${queries.jar}"/>
|
|
<pathelement path="${sandbox.jar}"/>
|
|
<path refid="base.classpath"/>
|
|
</path>
|
|
|
|
<target name="compile-core" depends="jar-queries,jar-sandbox,common.compile-core"/>
|
|
|
|
<target name="javadocs" depends="javadocs-queries,javadocs-sandbox,compile-core,check-javadocs-uptodate"
|
|
unless="javadocs-uptodate-${name}">
|
|
<invoke-module-javadoc>
|
|
<links>
|
|
<link href="../queries"/>
|
|
<link href="../sandbox"/>
|
|
</links>
|
|
</invoke-module-javadoc>
|
|
</target>
|
|
|
|
<target name="javacc" depends="javacc-QueryParser,javacc-surround,javacc-flexible"/>
|
|
|
|
<macrodef name="generalReplaces">
|
|
<attribute name="dir"/>
|
|
<sequential>
|
|
<!-- StringBuffer -> StringBuilder -->
|
|
<replace token="StringBuffer" value="StringBuilder" encoding="UTF-8">
|
|
<fileset dir="@{dir}" includes="ParseException.java TokenMgrError.java"/>
|
|
</replace>
|
|
<!-- Remove debug stream (violates forbidden-apis) -->
|
|
<replaceregexp match="/\*\* Debug.*debugStream\s*=\s*ds;\s*}" replace="" flags="s" encoding="UTF-8">
|
|
<fileset dir="@{dir}" includes="*TokenManager.java"/>
|
|
</replaceregexp>
|
|
<!-- Add warnings supression -->
|
|
<replaceregexp match="^\Qpublic class\E" replace="@SuppressWarnings("cast")${line.separator}\0" flags="m" encoding="UTF-8">
|
|
<fileset dir="@{dir}" includes="*TokenManager.java"/>
|
|
</replaceregexp>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<target name="javacc-QueryParser" depends="resolve-javacc">
|
|
<sequential>
|
|
<invoke-javacc target="src/java/org/apache/lucene/queryparser/classic/QueryParser.jj"
|
|
outputDir="src/java/org/apache/lucene/queryparser/classic"/>
|
|
|
|
<!-- Change the incorrect public ctors for QueryParser to be protected instead -->
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/classic/QueryParser.java"
|
|
byline="true"
|
|
match="public QueryParser\(CharStream "
|
|
replace="protected QueryParser(CharStream "/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/classic/QueryParser.java"
|
|
byline="true"
|
|
match="public QueryParser\(QueryParserTokenManager "
|
|
replace="protected QueryParser(QueryParserTokenManager "/>
|
|
<generalReplaces dir="src/java/org/apache/lucene/queryparser/classic"/>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="javacc-surround" depends="resolve-javacc" description="generate surround query parser">
|
|
<invoke-javacc target="src/java/org/apache/lucene/queryparser/surround/parser/QueryParser.jj"
|
|
outputDir="src/java/org/apache/lucene/queryparser/surround/parser"
|
|
/>
|
|
<generalReplaces dir="src/java/org/apache/lucene/queryparser/surround/parser"/>
|
|
</target>
|
|
|
|
<target name="javacc-flexible" depends="resolve-javacc">
|
|
<invoke-javacc target="src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.jj"
|
|
outputDir="src/java/org/apache/lucene/queryparser/flexible/standard/parser"
|
|
/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="public class ParseException extends Exception"
|
|
replace="public class ParseException extends QueryNodeParseException"
|
|
flags="g"
|
|
byline="false"/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="package org.apache.lucene.queryparser.flexible.standard.parser;"
|
|
replace="package org.apache.lucene.queryparser.flexible.standard.parser;${line.separator}
|
|
${line.separator}
|
|
import org.apache.lucene.queryparser.flexible.messages.Message;${line.separator}
|
|
import org.apache.lucene.queryparser.flexible.messages.MessageImpl;${line.separator}
|
|
import org.apache.lucene.queryparser.flexible.core.*;${line.separator}
|
|
import org.apache.lucene.queryparser.flexible.core.messages.*;"
|
|
flags="g"
|
|
byline="false"/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="^ public ParseException\(Token currentTokenVal.*$(\s\s[^}].*\n)* \}"
|
|
replace=" public ParseException(Token currentTokenVal,${line.separator}
|
|
int[][] expectedTokenSequencesVal, String[] tokenImageVal) {${line.separator}
|
|
super(new MessageImpl(QueryParserMessages.INVALID_SYNTAX, initialise(${line.separator}
|
|
currentTokenVal, expectedTokenSequencesVal, tokenImageVal)));${line.separator}
|
|
this.currentToken = currentTokenVal;${line.separator}
|
|
this.expectedTokenSequences = expectedTokenSequencesVal;${line.separator}
|
|
this.tokenImage = tokenImageVal;${line.separator}
|
|
}"
|
|
flags="gm"
|
|
byline="false"/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="^ public ParseException\(String message.*$(\s\s[^}].*\n)* \}"
|
|
replace=" public ParseException(Message message) {${line.separator}
|
|
super(message);${line.separator}
|
|
}"
|
|
flags="gm"
|
|
byline="false"/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="^ public ParseException\(\).*$(\s\s[^}].*\n)* \}"
|
|
replace=" public ParseException() {${line.separator}
|
|
super(new MessageImpl(QueryParserMessages.INVALID_SYNTAX, "Error"));${line.separator}
|
|
}"
|
|
flags="gm"
|
|
byline="false"/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="^ public String getMessage\(\).*$(\s\s\s\s[^}].*\n)* \}"
|
|
replace=" private static String initialise(Token currentToken, int[][] expectedTokenSequences, String[] tokenImage) {${line.separator}
|
|
String eol = System.getProperty("line.separator", "\n");"
|
|
flags="gm"
|
|
byline="false"/>
|
|
<replaceregexp file="src/java/org/apache/lucene/queryparser/flexible/standard/parser/ParseException.java"
|
|
match="\s*protected String add_escapes.*"
|
|
replace=" static private String add_escapes(String str) {"
|
|
flags="g"
|
|
byline="true"/>
|
|
<generalReplaces dir="src/java/org/apache/lucene/queryparser/flexible/standard/parser"/>
|
|
</target>
|
|
|
|
<target name="resolve-javacc" xmlns:ivy="antlib:org.apache.ivy.ant">
|
|
<!-- setup a "fake" JavaCC distribution folder in ${build.dir} to make JavaCC ANT task happy: -->
|
|
<ivy:retrieve organisation="net.java.dev.javacc" module="javacc" revision="5.0" symlink="${ivy.symlink}"
|
|
inline="true" conf="default" transitive="false" type="jar" sync="true"
|
|
pattern="${build.dir}/javacc/bin/lib/[artifact].[ext]"/>
|
|
</target>
|
|
|
|
<macrodef name="invoke-javacc">
|
|
<attribute name="target"/>
|
|
<attribute name="outputDir"/>
|
|
<sequential>
|
|
<mkdir dir="@{outputDir}"/>
|
|
<delete>
|
|
<fileset dir="@{outputDir}" includes="*.java">
|
|
<containsregexp expression="Generated.*By.*JavaCC"/>
|
|
</fileset>
|
|
</delete>
|
|
<javacc
|
|
target="@{target}"
|
|
outputDirectory="@{outputDir}"
|
|
javacchome="${build.dir}/javacc"
|
|
jdkversion="${javac.source}"
|
|
/>
|
|
<fixcrlf srcdir="@{outputDir}" includes="*.java" encoding="UTF-8">
|
|
<containsregexp expression="Generated.*By.*JavaCC"/>
|
|
</fixcrlf>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<target name="regenerate" depends="javacc"/>
|
|
|
|
</project>
|