1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * See LICENSE.txt included in this distribution for the specific 9 * language governing permissions and limitations under the License. 10 * 11 * When distributing Covered Code, include this CDDL HEADER in each 12 * file and include the License file at LICENSE.txt. 13 * If applicable, add the following below this CDDL HEADER, with the 14 * fields enclosed by brackets "[]" replaced with your own identifying 15 * information: Portions Copyright [yyyy] [name of copyright owner] 16 * 17 * CDDL HEADER END 18 */ 19 20 /* 21 * Copyright (c) 2018, Chris Fraire <cfraire@me.com>. 22 */ 23 24 package org.opengrok.indexer.search; 25 26 %% 27 %public 28 %class FullQueryEscaper 29 %extends TermEscaperBase 30 %unicode 31 %type boolean 32 %eofval{ 33 return false; 34 %eofval} 35 36 %include QueryEscaper.lexh 37 %% 38 39 {LuceneSpecialEscape} { 40 for (int i = 0; i < yylength(); ++i) { 41 appendOut(yycharat(i)); // faster than yytext() 42 } 43 } 44 45 /* 46 * The free text field may contain terms qualified with other field names, so 47 * don't escape single colons. 48 */ 49 50 "::" { 51 appendOut("\\:\\:"); 52 } 53 54 [^] { 55 for (int i = 0; i < yylength(); ++i) { 56 appendOut(yycharat(i)); // faster than yytext() 57 } 58 } 59