| <!-- |
| 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="1.${javac.release}" |
| /> |
| <fixcrlf srcdir="@{outputDir}" includes="*.java" encoding="UTF-8"> |
| <containsregexp expression="Generated.*By.*JavaCC"/> |
| </fixcrlf> |
| </sequential> |
| </macrodef> |
| |
| <target name="regenerate" depends="javacc"/> |
| |
| </project> |