blob: 91b3eca70c3a0e217d45e43a4bfd6641c4e34b89 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Lucene.Net: core/QueryParser/QueryParser.cs Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="lucene-net-icon-128x128.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Lucene.Net
&#160;<span id="projectnumber">3.0.3</span>
</div>
<div id="projectbrief">Lucene.Net is a .NET port of the Java Lucene Indexing Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="Index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Packages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Properties</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_1efe588324fc547683bba4a3f1bac847.html">core</a></li><li class="navelem"><a class="el" href="dir_6e2a18bad6a7a334b85773be12b6af42.html">QueryParser</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">QueryParser.cs</div> </div>
</div><!--header-->
<div class="contents">
<a href="_query_parser_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * with the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * KIND, either express or implied. See the License for the</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * under the License.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">/* Generated By:JavaCC: Do not edit this line. QueryParser.java */</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">using</span> System;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">using</span> System.Collections.Generic;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">using</span> System.Diagnostics;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">using</span> System.Globalization;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">using</span> System.IO;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">using</span> System.Text;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">using</span> Lucene.Net.Analysis;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">using</span> Lucene.Net.Analysis.Tokenattributes;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">using</span> Lucene.Net.Search;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">using</span> Lucene.Net.Support;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">using</span> Lucene.Net.Util;</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a7f807a855319cb4e1efa0e1fcd2a537f"> 33</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_analyzer.html" title="An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index...">Analyzer</a> = Lucene.Net.Analysis.Analyzer;</div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a6b125de7dbff35724b7a50ca1188b182"> 34</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html" title="This class can be used if the token attributes of a TokenStream are intended to be consumed more than...">CachingTokenFilter</a> = Lucene.Net.Analysis.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#aa530d4fb6752b5150929bdd7c8e41ffc">CachingTokenFilter</a>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a205730fc8c2839cf92051d131140dae0"> 35</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html" title="A TokenStream enumerates the sequence of tokens, either from Fields of a Document or from query text...">TokenStream</a> = Lucene.Net.Analysis.TokenStream;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a2bed57a5b647aebd74ac59d7f68c8383"> 36</a></span>&#160;<span class="keyword">using</span> <a class="code" href="_query_parser_8cs.html#a2bed57a5b647aebd74ac59d7f68c8383">DateField</a> = Lucene.Net.Documents.DateField;</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8"> 37</a></span>&#160;<span class="keyword">using</span> <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a> = Lucene.Net.Documents.DateTools;</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9"> 38</a></span>&#160;<span class="keyword">using</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> = Lucene.Net.Index.Term;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a53e74846024ac804f694b882eea1936c"> 39</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html" title="A clause in a BooleanQuery. ">BooleanClause</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html#a4b47dba34226b48f8ec7e2c60f380239" title="Constructs a BooleanClause.">BooleanClause</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#ae2b9948961aeea34f9c4e4955536f433"> 40</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html" title="A Query that matches documents matching boolean combinations of other queries, e.g. TermQuerys, PhraseQuerys or other BooleanQuerys. ">BooleanQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html#a968b11ddc482cc691a4c794b9511e244" title="Constructs an empty boolean query. ">BooleanQuery</a>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a18c6d715ac23fb518bad81d85dd7f3ca"> 41</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_fuzzy_query.html" title="Implements the fuzzy search query. The similarity measurement is based on the Levenshtein (edit dista...">FuzzyQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_fuzzy_query.html#a7fc1ca1709b1e093ad9fa2e4455ac2e2" title="Create a new FuzzyQuery that will match terms with a similarity of at least minimumSimilarity to term...">FuzzyQuery</a>;</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a5bdafef6a08957cb9fda126bc524a0d5"> 42</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_match_all_docs_query.html" title="A query that matches all documents.">MatchAllDocsQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_match_all_docs_query.html#a017c4104f50617e04221f7ab59344e81">MatchAllDocsQuery</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a777364258387f83212556dce74b9d088"> 43</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html" title="MultiPhraseQuery is a generalized version of PhraseQuery, with an added method Add(Term[]). To use this class, to search for the phrase &quot;Microsoft app*&quot; first use add(Term) on the term &quot;Microsoft&quot;, then find all terms that have &quot;app&quot; as prefix using IndexReader.terms(Term), and use MultiPhraseQuery.add(Term[] terms) to add them to the query.">MultiPhraseQuery</a> = Lucene.Net.Search.MultiPhraseQuery;</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a45d897238ea15e63a6bfd530a8d0c652"> 44</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_term_query.html" title="An abstract Query that matches documents containing a subset of terms provided by a FilteredTermEnum ...">MultiTermQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_term_query.html#a4665283f73cc07695dbd13eb9dc29416" title="Constructs a query matching terms that cannot be represented with a single Term. ">MultiTermQuery</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a945cd0e79343408e87508a19920e3941"> 45</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html" title="A Query that matches documents containing a particular sequence of terms. A PhraseQuery is built by Q...">PhraseQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html#ab0768d0cdfc077d6fcf2236edcbac24a" title="Constructs an empty phrase query. ">PhraseQuery</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#afc61f86ed2982a0f4a99615147046083"> 46</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_prefix_query.html" title="A Query that matches documents containing terms with a specified prefix. A PrefixQuery is built by Qu...">PrefixQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_prefix_query.html#a4dc9697e6c5b14ce23366ecc2e7ca799" title="Constructs a query for terms starting with prefix. ">PrefixQuery</a>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#accbc7c5687907350ba0e2681b41e1b0d"> 47</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> = Lucene.Net.Search.Query;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#abe0c8eb128f6ce2ea282281c4fc06088"> 48</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html">Single</a> = Lucene.Net.Support.Single;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a13f0b68c1e7c8f509c3a0be1441df5d9"> 49</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_term_query.html" title="A Query that matches documents containing a term. This may be combined with other terms with a Boolea...">TermQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_term_query.html#a0cbb362ee8b86a0d927a5750c7545d3b" title="Constructs a query for the term t. ">TermQuery</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a75d10c703a17be3762e29a6abbf4f85b"> 50</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_term_range_query.html" title="A Query that matches documents within an exclusive range of terms.">TermRangeQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_term_range_query.html#a02e67280c2f6db64ac6a8329e190dded" title="Constructs a query selecting all terms greater/equal than lowerTerm but less/equal than upperTerm...">TermRangeQuery</a>;</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#afa8356e72eab4895c7c4f7ce5ff8d2d6"> 51</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_wildcard_query.html" title="Implements the wildcard search query. Supported wildcards are *, which matches any character sequence...">WildcardQuery</a> = Lucene.Net.Search.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_wildcard_query.html#a4b33a7871e5596427615008a01381b3a">WildcardQuery</a>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="_query_parser_8cs.html#a63c914dcb7d19365ff0f7c6ea7ef77c4"> 52</a></span>&#160;<span class="keyword">using</span> <a class="code" href="namespace_lucene_1_1_net_1_1_util.html#a92602ef4dd5a04278f4b62379d552c0b" title="Use by certain classes to match version compatibility across releases of Lucene. WARNING: When changi...">Version</a> = Lucene.Net.Util.Version;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span>Lucene.Net.QueryParsers</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html"> 130</a></span>&#160; <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html" title="This class is generated by JavaCC. The most important method is Parse(String).">QueryParser</a> : <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser_constants.html" title="Token literal values and constants. Generated by org.javacc.parser.OtherFilesGen::start() ...">QueryParserConstants</a></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> CONJ_NONE = 0;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> CONJ_AND = 1;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> CONJ_OR = 2;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> MOD_NONE = 0;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> MOD_NOT = 10;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> MOD_REQ = 11;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// make it possible to call setDefaultOperator() without accessing </span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// the nested class:</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a1f60aafbd1125dd348e8546999a4c5fe"> 144</a></span>&#160;<span class="comment"></span> <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b">Operator</a> AND_OPERATOR = <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b">Operator</a>.AND;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a1a30c6fc3f233ea7fd1b39766a74f79d"> 147</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b">Operator</a> OR_OPERATOR = <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b">Operator</a>.OR;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">private</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b">Operator</a> operator_Renamed = OR_OPERATOR;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> lowercaseExpandedTerms = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">private</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_rewrite_method.html" title="Abstract class that defines how the query is rewritten. ">RewriteMethod</a> multiTermRewriteMethod = <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_term_query.html" title="An abstract Query that matches documents containing a subset of terms provided by a FilteredTermEnum ...">MultiTermQuery</a>.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_term_query.html#a6a7dcb5bccca90ab5ff7efbaf5c4f5ab" title="Read-only default instance of ConstantScoreAutoRewrite , with ConstantScoreAutoRewrite.TermCountCutoff set to ConstantScoreAutoRewrite.DEFAULT_TERM_COUNT_CUTOFF">CONSTANT_SCORE_AUTO_REWRITE_DEFAULT</a>;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> allowLeadingWildcard = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> enablePositionIncrements = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// LUCENENET-423 - DateRange differences with Java and .NET</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> _useJavaStyleDateRangeParsing = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">private</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_analyzer.html" title="An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index...">Analyzer</a> analyzer;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">private</span> String field;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> phraseSlop = 0;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">private</span> <span class="keywordtype">float</span> fuzzyMinSim = <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_fuzzy_query.html" title="Implements the fuzzy search query. The similarity measurement is based on the Levenshtein (edit dista...">FuzzyQuery</a>.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_fuzzy_query.html#aeefc987f794e5a007d4c211adf7fcb8c">defaultMinSimilarity</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> fuzzyPrefixLength = <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_fuzzy_query.html" title="Implements the fuzzy search query. The similarity measurement is based on the Levenshtein (edit dista...">FuzzyQuery</a>.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_fuzzy_query.html#a227ad54ca8d74fd11415d7a659804e36">defaultPrefixLength</a>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">private</span> System.Globalization.CultureInfo locale = System.Globalization.CultureInfo.CurrentCulture;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// the default date resolution</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">private</span> <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution dateResolution = null;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// maps field names to date resolutions</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">private</span> IDictionary&lt;String, <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution&gt; fieldToDateResolution = null;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// The collator to use when determining range inclusion,</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// for use when constructing RangeQuerys.</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">private</span> System.Globalization.CompareInfo rangeCollator = null;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">/* The default operator_Renamed for parsing queries. </span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> * Use {@link QueryParser#setDefaultOperator} to change it.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b"> 180</a></span>&#160; <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ac2082dbd01a7924dc2e8008cbad0b60b">Operator</a></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; OR,</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; AND</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">/* Constructs a query parser.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> * @param matchVersion Lucene version to match. See &lt;a href=&quot;#version&quot;&gt;above&lt;/a&gt;)</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> * @param f the default field for query terms.</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> * @param a used to find terms in the query text.</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a973f1849d79cc237312c30378b8e3281"> 192</a></span>&#160; <span class="keyword">public</span> <a class="code" href="_stop_filter_8cs.html#a60340f60ee092cf9082b16fe7b2ed03f">QueryParser</a>(<a class="code" href="namespace_lucene_1_1_net_1_1_util.html#a92602ef4dd5a04278f4b62379d552c0b" title="Use by certain classes to match version compatibility across releases of Lucene. WARNING: When changi...">Version</a> matchVersion, String f, <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_analyzer.html" title="An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index...">Analyzer</a> a)</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; : this(new <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_fast_char_stream.html" title="An efficient implementation of JavaCC&#39;s CharStream interface. Note that this does not do line-number ...">FastCharStream</a>(new StringReader(<span class="stringliteral">&quot;&quot;</span>)))</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; analyzer = a;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; field = f;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (matchVersion.OnOrAfter(<a class="code" href="namespace_lucene_1_1_net_1_1_util.html#a92602ef4dd5a04278f4b62379d552c0b" title="Use by certain classes to match version compatibility across releases of Lucene. WARNING: When changi...">Version</a>.LUCENE_29))</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; enablePositionIncrements = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; enablePositionIncrements = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// LUCENENET-423 - DateRange differences with Java and .NET</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (matchVersion.OnOrAfter(<a class="code" href="namespace_lucene_1_1_net_1_1_util.html#a92602ef4dd5a04278f4b62379d552c0b" title="Use by certain classes to match version compatibility across releases of Lucene. WARNING: When changi...">Version</a>.LUCENE_30))</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; _useJavaStyleDateRangeParsing = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a4883b4d71854640edf5307f74a72aeb4"> 217</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> Parse(String query)</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; ReInit(<span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_fast_char_stream.html" title="An efficient implementation of JavaCC&#39;s CharStream interface. Note that this does not do line-number ...">FastCharStream</a>(<span class="keyword">new</span> StringReader(query)));</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// TopLevelQuery is a Query followed by the end-of-input (EOF)</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> res = TopLevelQuery(field);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> res ?? NewBooleanQuery(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">catch</span> (<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a> tme)</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// rethrow to include the original query:</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>(<span class="stringliteral">&quot;Cannot parse &#39;&quot;</span> + query + <span class="stringliteral">&quot;&#39;: &quot;</span> + tme.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html#ac8b906dcfd14c4583e1d385a60998e91" title="This method has the standard behavior when this object has been created using the standard constructo...">Message</a>, tme);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">catch</span> (<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token_mgr_error.html" title="Token Manager Error. ">TokenMgrError</a> tme)</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>(<span class="stringliteral">&quot;Cannot parse &#39;&quot;</span> + query + <span class="stringliteral">&quot;&#39;: &quot;</span> + tme.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token_mgr_error.html#a9b27a303daf0e653b0f44b6fc8924057" title="You can also modify the body of this method to customize your error messages. For example...">Message</a>, tme);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">catch</span> (<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html" title="A Query that matches documents matching boolean combinations of other queries, e.g. TermQuerys, PhraseQuerys or other BooleanQuerys. ">BooleanQuery</a>.TooManyClauses tmc)</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>(<span class="stringliteral">&quot;Cannot parse &#39;&quot;</span> + query + <span class="stringliteral">&quot;&#39;: too many bool clauses&quot;</span>, tmc);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_analyzer.html" title="An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index...">Analyzer</a> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_analyzer.html" title="An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index...">Analyzer</a></div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#aae8178fbcd72c36ce823cda20d1c9095"> 243</a></span>&#160; {</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> analyzer; }</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">string</span> <a class="code" href="_syns2_index_8cs.html#a6d7b175c6799cf1d18e9493727d23fc6">Field</a></div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#af0969c1cc503fdf709f6f2c5badc838b"> 249</a></span>&#160; {</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> field; }</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">float</span> FuzzyMinSim</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a6afc40ba021fc97fc98e38debaadc53f"> 258</a></span>&#160; {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> fuzzyMinSim; }</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">set</span> { this.fuzzyMinSim = value; }</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> FuzzyPrefixLength</div>
<div class="line"><a name="l00266"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ab12433466c8939d9d0c43d00a95b2e47"> 266</a></span>&#160; {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> fuzzyPrefixLength; }</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">set</span> { this.fuzzyPrefixLength = value; }</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> PhraseSlop</div>
<div class="line"><a name="l00275"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a00270813d6d12e24caf394b20f139c95"> 275</a></span>&#160; {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">set</span> { this.phraseSlop = value; }</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> phraseSlop; }</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AllowLeadingWildcard</div>
<div class="line"><a name="l00290"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a44277860d165df27eb6f9c0cabc19bc1"> 290</a></span>&#160; {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">set</span> { this.allowLeadingWildcard = value; }</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> allowLeadingWildcard; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> EnablePositionIncrements</div>
<div class="line"><a name="l00305"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a626e511eb4b2eefb2a2f81136bf44d6c"> 305</a></span>&#160; {</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">set</span> { this.enablePositionIncrements = value; }</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> enablePositionIncrements; }</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> Operator DefaultOperator</div>
<div class="line"><a name="l00318"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a498844fa56540518cb10b0e46d42d3ce"> 318</a></span>&#160; {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">set</span> { this.operator_Renamed = value; }</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> operator_Renamed; }</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> LowercaseExpandedTerms</div>
<div class="line"><a name="l00327"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#abb99bd602726b56fa3c52cb70a98f24d"> 327</a></span>&#160; {</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">set</span> { this.lowercaseExpandedTerms = value; }</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> lowercaseExpandedTerms; }</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_rewrite_method.html" title="Abstract class that defines how the query is rewritten. ">RewriteMethod</a> MultiTermRewriteMethod</div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#aabf5eef0fee56c12653f0f81aeb89a6f"> 343</a></span>&#160; {</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">set</span> { multiTermRewriteMethod = value; }</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> multiTermRewriteMethod; }</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> CultureInfo Locale</div>
<div class="line"><a name="l00350"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a0a29145f8517f6811828a54bea7686a4"> 350</a></span>&#160; {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">set</span> { this.locale = value; }</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> locale; }</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a465fd6dd161db2a20ba137e379e24f8e"> 362</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetDateResolution(<a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution dateResolution)</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; this.dateResolution = dateResolution;</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
<div class="line"><a name="l00374"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a53bf85892df3c3ab162296faefa36faa"> 374</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetDateResolution(String fieldName, <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution dateResolution)</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span> (fieldName == null)</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentException(<span class="stringliteral">&quot;Field cannot be null.&quot;</span>);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span> (fieldToDateResolution == null)</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="comment">// lazily initialize HashMap</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; fieldToDateResolution = <span class="keyword">new</span> HashMap&lt;String, <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution&gt;();</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; fieldToDateResolution.Add(fieldName, dateResolution);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
<div class="line"><a name="l00394"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a191bc4ec5991857bf1c22828c814253c"> 394</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution getDateResolution(String fieldName)</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">if</span> (fieldName == null)</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentException(<span class="stringliteral">&quot;Field cannot be null.&quot;</span>);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (fieldToDateResolution == null)</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// no field specific date resolutions set; return default date resolution instead</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> this.dateResolution;</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution resolution = fieldToDateResolution[fieldName];</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span> (resolution == null)</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; {</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="comment">// no date resolutions set for the given field; return default date resolution instead</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; resolution = this.dateResolution;</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> resolution;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> CompareInfo RangeCollator</div>
<div class="line"><a name="l00429"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a5c82cf672a01aa9922b3dfa06974c82d"> 429</a></span>&#160; {</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">set</span> { rangeCollator = value; }</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> rangeCollator; }</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddClause(List&lt;BooleanClause&gt; clauses, <span class="keywordtype">int</span> conj, <span class="keywordtype">int</span> mods, <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q)</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordtype">bool</span> required, prohibited;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">// If this term is introduced by AND, make the preceding term required,</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="comment">// unless it&#39;s already prohibited</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span> (clauses.Count &gt; 0 &amp;&amp; conj == CONJ_AND)</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; {</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html" title="A clause in a BooleanQuery. ">BooleanClause</a> c = clauses[clauses.Count - 1];</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (!c.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html#a8732e5a2a1711dad803c623bbff8d803">IsProhibited</a>)</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; c.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html#a9221865438d440317e03556afe0fec44">Occur</a> = <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a>.MUST;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">if</span> (clauses.Count &gt; 0 &amp;&amp; operator_Renamed == AND_OPERATOR &amp;&amp; conj == CONJ_OR)</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="comment">// If this term is introduced by OR, make the preceding term optional,</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">// unless it&#39;s prohibited (that means we leave -a OR b but +a OR b--&gt;a OR b)</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// notice if the input is a OR b, first term is parsed as required; without</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="comment">// this modification a OR b would parsed as +a OR b</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html" title="A clause in a BooleanQuery. ">BooleanClause</a> c = clauses[clauses.Count - 1];</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">if</span> (!c.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html#a8732e5a2a1711dad803c623bbff8d803">IsProhibited</a>)</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; c.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html#a9221865438d440317e03556afe0fec44">Occur</a> = <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a>.SHOULD;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">// We might have been passed a null query; the term might have been</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// filtered away by the analyzer.</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span> (q == null)</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span> (operator_Renamed == OR_OPERATOR)</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; {</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">// We set REQUIRED if we&#39;re introduced by AND or +; PROHIBITED if</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="comment">// introduced by NOT or -; make sure not to set both.</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; prohibited = (mods == MOD_NOT);</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; required = (mods == MOD_REQ);</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span> (conj == CONJ_AND &amp;&amp; !prohibited)</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; required = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; {</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// We set PROHIBITED if we&#39;re introduced by NOT or -; We set REQUIRED</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// if not PROHIBITED and not introduced by OR</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; prohibited = (mods == MOD_NOT);</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; required = (!prohibited &amp;&amp; conj != CONJ_OR);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">if</span> (required &amp;&amp; !prohibited)</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; clauses.Add(NewBooleanClause(q, <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a>.MUST));</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!required &amp;&amp; !prohibited)</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; clauses.Add(NewBooleanClause(q, <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a>.SHOULD));</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!required &amp;&amp; prohibited)</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; clauses.Add(NewBooleanClause(q, <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a>.MUST_NOT));</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> SystemException(<span class="stringliteral">&quot;Clause cannot be both required and prohibited&quot;</span>);</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetFieldQuery(String field, String queryText)</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; {</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">// Use the analyzer to get all the tokens, and then build a TermQuery,</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// PhraseQuery, or nothing based on the term count</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html" title="A TokenStream enumerates the sequence of tokens, either from Fields of a Document or from query text...">TokenStream</a> source;</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; {</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; source = analyzer.ReusableTokenStream(field, <span class="keyword">new</span> StringReader(queryText));</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; source.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html#af7c4a3464dc78b1d0451492d9c520965" title="Resets this stream to the beginning. This is an optional operation, so subclasses may or may not impl...">Reset</a>();</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; {</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; source = analyzer.TokenStream(field, <span class="keyword">new</span> StringReader(queryText));</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html" title="This class can be used if the token attributes of a TokenStream are intended to be consumed more than...">CachingTokenFilter</a> buffer = <span class="keyword">new</span> <a class="code" href="_query_parser_8cs.html#a6b125de7dbff35724b7a50ca1188b182">CachingTokenFilter</a>(source);</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html" title="The term text of a Token.">ITermAttribute</a> termAtt = null;</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_position_increment_attribute.html" title="The positionIncrement determines the position of this token relative to the previous Token in a Token...">IPositionIncrementAttribute</a> posIncrAtt = null;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">int</span> numTokens = 0;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a82b367ec2276798af934946d241a3f19" title="Resets this stream to the beginning. This is an optional operation, so subclasses may or may not impl...">Reset</a>();</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; success = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; }</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; {</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="comment">// success==false if we hit an exception</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; }</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span> (success)</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span> (buffer.HasAttribute&lt;<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html" title="The term text of a Token.">ITermAttribute</a>&gt;())</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; {</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; termAtt = buffer.GetAttribute&lt;<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html" title="The term text of a Token.">ITermAttribute</a>&gt;();</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">if</span> (buffer.HasAttribute&lt;<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_position_increment_attribute.html" title="The positionIncrement determines the position of this token relative to the previous Token in a Token...">IPositionIncrementAttribute</a>&gt;())</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; {</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; posIncrAtt = buffer.GetAttribute&lt;<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_position_increment_attribute.html" title="The positionIncrement determines the position of this token relative to the previous Token in a Token...">IPositionIncrementAttribute</a>&gt;();</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; }</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordtype">int</span> positionCount = 0;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordtype">bool</span> severalTokensAtSamePosition = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordtype">bool</span> hasMoreTokens = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span> (termAtt != null)</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; {</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; hasMoreTokens = buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a3fc274731685ad3d6082ba322c717518" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a>();</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">while</span> (hasMoreTokens)</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; numTokens++;</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordtype">int</span> positionIncrement = (posIncrAtt != null) ? posIncrAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_position_increment_attribute.html#a3d8ab40f937085e6708296059d0732b2" title="Gets or sets the position increment. The default value is one.">PositionIncrement</a> : 1;</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; if (positionIncrement != 0)</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; positionCount += positionIncrement;</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; severalTokensAtSamePosition = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; hasMoreTokens = buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a3fc274731685ad3d6082ba322c717518" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a>();</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; {</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="comment">// ignore</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; {</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="comment">// rewind the buffer stream</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a82b367ec2276798af934946d241a3f19" title="Resets this stream to the beginning. This is an optional operation, so subclasses may or may not impl...">Reset</a>();</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="comment">// close original stream - all tokens buffered</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; source.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html#a5f66ac4c37218611b4a13f81f98332cd" title="Releases resources associated with this stream. ">Close</a>();</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// ignore</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">if</span> (numTokens == 0)</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> null;</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (numTokens == 1)</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; String term = null;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordtype">bool</span> hasNext = buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a3fc274731685ad3d6082ba322c717518" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a>();</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; Debug.Assert(hasNext);</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; term = termAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html#acdcd805612ee71187baaf3ab48d73536" title="Returns the Token&#39;s term text.">Term</a>;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="comment">// safe to ignore, because we know the number of tokens</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">return</span> NewTermQuery(<span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, term));</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; }</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; {</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">if</span> (severalTokensAtSamePosition)</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; {</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">if</span> (positionCount == 1)</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; {</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// no phrase query:</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html" title="A Query that matches documents matching boolean combinations of other queries, e.g. TermQuerys, PhraseQuerys or other BooleanQuerys. ">BooleanQuery</a> q = NewBooleanQuery(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; numTokens; i++)</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; {</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; String term = null;</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordtype">bool</span> hasNext = buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a3fc274731685ad3d6082ba322c717518" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a>();</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; Debug.Assert(hasNext);</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; term = termAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html#acdcd805612ee71187baaf3ab48d73536" title="Returns the Token&#39;s term text.">Term</a>;</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; }</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; {</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="comment">// safe to ignore, because we know the number of tokens</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> currentQuery = NewTermQuery(</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, term));</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; q.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html#abb13cef2c294c50e9224afd45239bfb5" title="Adds a clause to a boolean query.">Add</a>(currentQuery, <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a>.SHOULD);</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> q;</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="comment">// phrase query:</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html" title="MultiPhraseQuery is a generalized version of PhraseQuery, with an added method Add(Term[]). To use this class, to search for the phrase &quot;Microsoft app*&quot; first use add(Term) on the term &quot;Microsoft&quot;, then find all terms that have &quot;app&quot; as prefix using IndexReader.terms(Term), and use MultiPhraseQuery.add(Term[] terms) to add them to the query.">MultiPhraseQuery</a> mpq = NewMultiPhraseQuery();</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; mpq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html#ae0d7ebdeef9882c2fb0171c0d8b8659d" title="Gets or sets the phrase slop for this query.">Slop</a> = phraseSlop;</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; List&lt;Term&gt; multiTerms = <span class="keyword">new</span> List&lt;Term&gt;();</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordtype">int</span> position = -1;</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; numTokens; i++)</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; String term = null;</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordtype">int</span> positionIncrement = 1;</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; {</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordtype">bool</span> hasNext = buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a3fc274731685ad3d6082ba322c717518" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a>();</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; Debug.Assert(hasNext == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; term = termAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html#acdcd805612ee71187baaf3ab48d73536" title="Returns the Token&#39;s term text.">Term</a>;</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">if</span> (posIncrAtt != null)</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; {</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; positionIncrement = posIncrAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_position_increment_attribute.html#a3d8ab40f937085e6708296059d0732b2" title="Gets or sets the position increment. The default value is one.">PositionIncrement</a>;</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; {</div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// safe to ignore, because we know the number of tokens</span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; }</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">if</span> (positionIncrement &gt; 0 &amp;&amp; multiTerms.Count &gt; 0)</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; {</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">if</span> (enablePositionIncrements)</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; {</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; mpq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html#a80f2384c8e268027fe5f90b6b6400ec4" title="Add a single term at the next position in the phrase.">Add</a>(multiTerms.ToArray(), position);</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; }</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; {</div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; mpq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html#a80f2384c8e268027fe5f90b6b6400ec4" title="Add a single term at the next position in the phrase.">Add</a>(multiTerms.ToArray());</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; }</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; multiTerms.Clear();</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; }</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; position += positionIncrement;</div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; multiTerms.Add(<span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, term));</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">if</span> (enablePositionIncrements)</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; mpq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html#a80f2384c8e268027fe5f90b6b6400ec4" title="Add a single term at the next position in the phrase.">Add</a>(multiTerms.ToArray(), position);</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; mpq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html#a80f2384c8e268027fe5f90b6b6400ec4" title="Add a single term at the next position in the phrase.">Add</a>(multiTerms.ToArray());</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">return</span> mpq;</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; }</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html" title="A Query that matches documents containing a particular sequence of terms. A PhraseQuery is built by Q...">PhraseQuery</a> pq = NewPhraseQuery();</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; pq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html#ab0b42bf7038acb8464c7a31de6c1fb22" title="Sets the number of other words permitted between words in query phrase. If zero, then this is an exac...">Slop</a> = phraseSlop;</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordtype">int</span> position = -1;</div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; numTokens; i++)</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; {</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; String term = null;</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordtype">int</span> positionIncrement = 1;</div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordtype">bool</span> hasNext = buffer.<a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_caching_token_filter.html#a3fc274731685ad3d6082ba322c717518" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a>();</div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Debug.Assert(hasNext == <span class="keyword">true</span>);</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; term = termAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_term_attribute.html#acdcd805612ee71187baaf3ab48d73536" title="Returns the Token&#39;s term text.">Term</a>;</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">if</span> (posIncrAtt != null)</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; positionIncrement = posIncrAtt.<a class="code" href="interface_lucene_1_1_net_1_1_analysis_1_1_tokenattributes_1_1_i_position_increment_attribute.html#a3d8ab40f937085e6708296059d0732b2" title="Gets or sets the position increment. The default value is one.">PositionIncrement</a>;</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">catch</span> (IOException)</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; {</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// safe to ignore, because we know the number of tokens</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span> (enablePositionIncrements)</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; {</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; position += positionIncrement;</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; pq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html#a73747b1c2a28259caf60036f80bc5ad8" title="Adds a term to the end of the query phrase. The relative position of the term is the one immediately ...">Add</a>(<span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, term), position);</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; {</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; pq.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html#a73747b1c2a28259caf60036f80bc5ad8" title="Adds a term to the end of the query phrase. The relative position of the term is the one immediately ...">Add</a>(<span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, term));</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> pq;</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; }</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetFieldQuery(String field, String queryText, <span class="keywordtype">int</span> slop)</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {</div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> query = GetFieldQuery(field, queryText);</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">if</span> (query is <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_phrase_query.html" title="A Query that matches documents containing a particular sequence of terms. A PhraseQuery is built by Q...">PhraseQuery</a>)</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; ((<a class="code" href="_abstract_field_8cs.html#a945cd0e79343408e87508a19920e3941">PhraseQuery</a>)query).Slop = slop;</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">if</span> (query is <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html" title="MultiPhraseQuery is a generalized version of PhraseQuery, with an added method Add(Term[]). To use this class, to search for the phrase &quot;Microsoft app*&quot; first use add(Term) on the term &quot;Microsoft&quot;, then find all terms that have &quot;app&quot; as prefix using IndexReader.terms(Term), and use MultiPhraseQuery.add(Term[] terms) to add them to the query.">MultiPhraseQuery</a>)</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; ((<a class="code" href="_multi_field_query_parser_8cs.html#a777364258387f83212556dce74b9d088">MultiPhraseQuery</a>)query).Slop = slop;</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> query;</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetRangeQuery(String field,</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; String part1,</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; String part2,</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordtype">bool</span> inclusive)</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; {</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">if</span> (lowercaseExpandedTerms)</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; part1 = part1.ToLower();</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; part2 = part2.ToLower();</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; {</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; DateTime d1, d2;</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span> (_useJavaStyleDateRangeParsing)</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; {</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="comment">// TODO: This doesn&#39;t emulate java perfectly.</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="comment">// Java allows parsing of the string up to the end of the pattern</span></div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="comment">// and then ignores everything else. .NET will throw an exception, </span></div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// so this will fail in those cases, though the code below is clear</span></div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">// that users can only specify the date, not the time.</span></div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; var shortFormat = locale.DateTimeFormat.ShortDatePattern;</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; d1 = DateTime.ParseExact(part1, shortFormat, locale);</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; d2 = DateTime.ParseExact(part2, shortFormat, locale);</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; {</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; d1 = DateTime.Parse(part1, locale);</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; d2 = DateTime.Parse(part2, locale);</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span> (inclusive)</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="comment">// The user can only specify the date, not the time, so make sure</span></div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="comment">// the time is set to the latest possible time of that date to really</span></div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="comment">// include all documents:</span></div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; var cal = locale.Calendar;</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; d2 = cal.AddHours(d2, 23);</div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; d2 = cal.AddMinutes(d2, 59);</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; d2 = cal.AddSeconds(d2, 59);</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; d2 = cal.AddMilliseconds(d2, 999);</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.Resolution resolution = getDateResolution(field);</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">if</span> (resolution == null)</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; {</div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="comment">// no default or field specific date resolution has been set,</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="comment">// use deprecated DateField to maintain compatibility with</span></div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="comment">// pre-1.9 Lucene versions.</span></div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; part1 = <a class="code" href="_query_parser_8cs.html#a2bed57a5b647aebd74ac59d7f68c8383">DateField</a>.DateToString(d1);</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; part2 = <a class="code" href="_query_parser_8cs.html#a2bed57a5b647aebd74ac59d7f68c8383">DateField</a>.DateToString(d2);</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; }</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; {</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; part1 = <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.DateToString(d1, resolution);</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; part2 = <a class="code" href="_query_parser_8cs.html#a3738fc93106a1fe6d46a6b68fd4401f8">DateTools</a>.DateToString(d2, resolution);</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">catch</span> (Exception)</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; {</div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">return</span> NewRangeQuery(field, part1, part2, inclusive);</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html" title="A Query that matches documents matching boolean combinations of other queries, e.g. TermQuerys, PhraseQuerys or other BooleanQuerys. ">BooleanQuery</a> NewBooleanQuery(<span class="keywordtype">bool</span> disableCoord)</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; {</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#ae2b9948961aeea34f9c4e4955536f433">BooleanQuery</a>(disableCoord);</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_clause.html" title="A clause in a BooleanQuery. ">BooleanClause</a> NewBooleanClause(<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q, <a class="code" href="namespace_lucene_1_1_net_1_1_search.html#a99a7442e50a0ff52bf00ddb319eb9d34">Occur</a> occur)</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a53e74846024ac804f694b882eea1936c">BooleanClause</a>(q, occur);</div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> NewTermQuery(<a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> term)</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; {</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a13f0b68c1e7c8f509c3a0be1441df5d9">TermQuery</a>(term);</div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div>
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> PhraseQuery NewPhraseQuery()</div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; {</div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_abstract_field_8cs.html#a945cd0e79343408e87508a19920e3941">PhraseQuery</a>();</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; }</div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_multi_phrase_query.html" title="MultiPhraseQuery is a generalized version of PhraseQuery, with an added method Add(Term[]). To use this class, to search for the phrase &quot;Microsoft app*&quot; first use add(Term) on the term &quot;Microsoft&quot;, then find all terms that have &quot;app&quot; as prefix using IndexReader.terms(Term), and use MultiPhraseQuery.add(Term[] terms) to add them to the query.">MultiPhraseQuery</a> NewMultiPhraseQuery()</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; {</div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_multi_field_query_parser_8cs.html#a777364258387f83212556dce74b9d088">MultiPhraseQuery</a>();</div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div>
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> NewPrefixQuery(<a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> prefix)</div>
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; {</div>
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_date_field_8cs.html#afc61f86ed2982a0f4a99615147046083">PrefixQuery</a>(prefix) { <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_rewrite_method.html" title="Abstract class that defines how the query is rewritten. ">RewriteMethod</a> = multiTermRewriteMethod };</div>
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; }</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> NewFuzzyQuery(<a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> term, <span class="keywordtype">float</span> minimumSimilarity, <span class="keywordtype">int</span> prefixLength)</div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; {</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="comment">// FuzzyQuery doesn&#39;t yet allow constant score rewrite</span></div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_query_parser_8cs.html#a18c6d715ac23fb518bad81d85dd7f3ca">FuzzyQuery</a>(term, minimumSimilarity, prefixLength);</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; }</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> NewRangeQuery(String field, String part1, String part2, <span class="keywordtype">bool</span> inclusive)</div>
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div>
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_date_field_8cs.html#a75d10c703a17be3762e29a6abbf4f85b">TermRangeQuery</a>(field, part1, part2, inclusive, inclusive, rangeCollator) { <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_rewrite_method.html" title="Abstract class that defines how the query is rewritten. ">RewriteMethod</a> = multiTermRewriteMethod };</div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div>
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> NewMatchAllDocsQuery()</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; {</div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_query_parser_8cs.html#a5bdafef6a08957cb9fda126bc524a0d5">MatchAllDocsQuery</a>();</div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> NewWildcardQuery(<a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> t)</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; {</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_query_parser_8cs.html#afa8356e72eab4895c7c4f7ce5ff8d2d6">WildcardQuery</a>(t) { <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_rewrite_method.html" title="Abstract class that defines how the query is rewritten. ">RewriteMethod</a> = multiTermRewriteMethod };</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;</div>
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetBooleanQuery(IList&lt;BooleanClause&gt; clauses)</div>
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; {</div>
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">return</span> GetBooleanQuery(clauses, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div>
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetBooleanQuery(IList&lt;BooleanClause&gt; clauses, <span class="keywordtype">bool</span> disableCoord)</div>
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; {</div>
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">if</span> (clauses.Count == 0)</div>
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; {</div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">return</span> null; <span class="comment">// all clause words were filtered away by the analyzer.</span></div>
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; }</div>
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html" title="A Query that matches documents matching boolean combinations of other queries, e.g. TermQuerys, PhraseQuerys or other BooleanQuerys. ">BooleanQuery</a> query = NewBooleanQuery(disableCoord);</div>
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">foreach</span> (var clause <span class="keywordflow">in</span> clauses)</div>
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; {</div>
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; query.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_boolean_query.html#abb13cef2c294c50e9224afd45239bfb5" title="Adds a clause to a boolean query.">Add</a>(clause);</div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div>
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">return</span> query;</div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; }</div>
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;</div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetWildcardQuery(String field, String termStr)</div>
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; {</div>
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">if</span> (<span class="stringliteral">&quot;*&quot;</span>.Equals(field))</div>
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; {</div>
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordflow">if</span> (<span class="stringliteral">&quot;*&quot;</span>.Equals(termStr)) <span class="keywordflow">return</span> NewMatchAllDocsQuery();</div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">if</span> (!allowLeadingWildcard &amp;&amp; (termStr.StartsWith(<span class="stringliteral">&quot;*&quot;</span>) || termStr.StartsWith(<span class="stringliteral">&quot;?&quot;</span>)))</div>
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ParseException(<span class="stringliteral">&quot;&#39;*&#39; or &#39;?&#39; not allowed as first character in WildcardQuery&quot;</span>);</div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">if</span> (lowercaseExpandedTerms)</div>
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; {</div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; termStr = termStr.ToLower();</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; }</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> t = <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, termStr);</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">return</span> NewWildcardQuery(t);</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; }</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetPrefixQuery(String field, String termStr)</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; {</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">if</span> (!allowLeadingWildcard &amp;&amp; termStr.StartsWith(<span class="stringliteral">&quot;*&quot;</span>))</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ParseException(<span class="stringliteral">&quot;&#39;*&#39; not allowed as first character in PrefixQuery&quot;</span>);</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">if</span> (lowercaseExpandedTerms)</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; {</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; termStr = termStr.ToLower();</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; }</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> t = <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, termStr);</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordflow">return</span> NewPrefixQuery(t);</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; }</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> GetFuzzyQuery(String field, String termStr, <span class="keywordtype">float</span> minSimilarity)</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; {</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">if</span> (lowercaseExpandedTerms)</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; {</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; termStr = termStr.ToLower();</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; }</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a> t = <span class="keyword">new</span> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field, termStr);</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">return</span> NewFuzzyQuery(t, minSimilarity, fuzzyPrefixLength);</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; }</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keyword">private</span> String DiscardEscapeChar(String input)</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; {</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="comment">// Create char array to hold unescaped char sequence</span></div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordtype">char</span>[] output = <span class="keyword">new</span> <span class="keywordtype">char</span>[input.Length];</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="comment">// The Length of the output can be less than the input</span></div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="comment">// due to discarded escape chars. This variable holds</span></div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="comment">// the actual Length of the output</span></div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordtype">int</span> Length = 0;</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="comment">// We remember whether the last processed character was </span></div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="comment">// an escape character</span></div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordtype">bool</span> lastCharWasEscapeChar = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="comment">// The multiplier the current unicode digit must be multiplied with.</span></div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="comment">// E. g. the first digit must be multiplied with 16^3, the second with 16^2...</span></div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordtype">int</span> codePointMultiplier = 0;</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="comment">// Used to calculate the codepoint of the escaped unicode character</span></div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordtype">int</span> codePoint = 0;</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; input.Length; i++)</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; {</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordtype">char</span> curChar = input[i];</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordflow">if</span> (codePointMultiplier &gt; 0)</div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; {</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; codePoint += HexToInt(curChar) * codePointMultiplier;</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; codePointMultiplier = <a class="code" href="class_lucene_1_1_net_1_1_support_1_1_number.html" title="A simple class for number conversions. ">Number</a>.<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_number.html#aafe44e2acf7feacad6abd2a425730644" title="Performs an unsigned bitwise right shift with the specified number ">URShift</a>(codePointMultiplier, 4);</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keywordflow">if</span> (codePointMultiplier == 0)</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; {</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; output[Length++] = (char)codePoint;</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; codePoint = 0;</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; }</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lastCharWasEscapeChar)</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; {</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">if</span> (curChar == <span class="charliteral">&#39;u&#39;</span>)</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; {</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="comment">// found an escaped unicode character</span></div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; codePointMultiplier = 16 * 16 * 16;</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; }</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; {</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="comment">// this character was escaped</span></div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; output[Length] = curChar;</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; Length++;</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; }</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; lastCharWasEscapeChar = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; {</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">if</span> (curChar == <span class="charliteral">&#39;\\&#39;</span>)</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; {</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; lastCharWasEscapeChar = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; }</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; {</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; output[Length] = curChar;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; Length++;</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; }</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; }</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; }</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">if</span> (codePointMultiplier &gt; 0)</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; {</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ParseException(<span class="stringliteral">&quot;Truncated unicode escape sequence.&quot;</span>);</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordflow">if</span> (lastCharWasEscapeChar)</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; {</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ParseException(<span class="stringliteral">&quot;Term can not end with escape character.&quot;</span>);</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; }</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> String(output, 0, Length);</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; }</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> HexToInt(<span class="keywordtype">char</span> c)</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; {</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">if</span> (<span class="charliteral">&#39;0&#39;</span> &lt;= c &amp;&amp; c &lt;= <span class="charliteral">&#39;9&#39;</span>)</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; {</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keywordflow">return</span> c - <span class="charliteral">&#39;0&#39;</span>;</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; }</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= c &amp;&amp; c &lt;= <span class="charliteral">&#39;f&#39;</span>)</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; {</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">return</span> c - <span class="charliteral">&#39;a&#39;</span> + 10;</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; }</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="charliteral">&#39;A&#39;</span> &lt;= c &amp;&amp; c &lt;= <span class="charliteral">&#39;F&#39;</span>)</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; {</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">return</span> c - <span class="charliteral">&#39;A&#39;</span> + 10;</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; }</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; {</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ParseException(<span class="stringliteral">&quot;None-hex character in unicode escape sequence: &quot;</span> + c);</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; }</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; }</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;</div>
<div class="line"><a name="l01175"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a648ae6a6b1d598c0a799e3654c67e513"> 1175</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> String Escape(String s)</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; {</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; StringBuilder sb = <span class="keyword">new</span> StringBuilder();</div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; s.Length; i++)</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; {</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordtype">char</span> c = s[i];</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="comment">// These characters are part of the query syntax and must be escaped</span></div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\\&#39;</span> || c == <span class="charliteral">&#39;+&#39;</span> || c == <span class="charliteral">&#39;-&#39;</span> || c == <span class="charliteral">&#39;!&#39;</span> || c == <span class="charliteral">&#39;(&#39;</span> || c == <span class="charliteral">&#39;)&#39;</span> || c == <span class="charliteral">&#39;:&#39;</span></div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; || c == <span class="charliteral">&#39;^&#39;</span> || c == <span class="charliteral">&#39;[&#39;</span> || c == <span class="charliteral">&#39;]&#39;</span> || c == <span class="charliteral">&#39;\&quot;&#39;</span> || c == <span class="charliteral">&#39;{&#39;</span> || c == <span class="charliteral">&#39;}&#39;</span> || c == <span class="charliteral">&#39;~&#39;</span></div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; || c == <span class="charliteral">&#39;*&#39;</span> || c == <span class="charliteral">&#39;?&#39;</span> || c == <span class="charliteral">&#39;|&#39;</span> || c == <span class="charliteral">&#39;&amp;&#39;</span>)</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; {</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; sb.Append(<span class="charliteral">&#39;\\&#39;</span>);</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; }</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; sb.Append(c);</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; }</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="keywordflow">return</span> sb.ToString();</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; }</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; [STAThread]</div>
<div class="line"><a name="l01198"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a04e2ea9ce548e6cd21c2c4e19412d6c6"> 1198</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">void</span> Main(String[] args)</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; {</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">if</span> (args.Length == 0)</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; {</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; Console.WriteLine(<span class="stringliteral">&quot;Usage: java org.apache.lucene.queryParser.QueryParser &lt;input&gt;&quot;</span>);</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; Environment.Exit(0);</div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; }</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html" title="This class is generated by JavaCC. The most important method is Parse(String).">QueryParser</a> qp = <span class="keyword">new</span> <a class="code" href="_stop_filter_8cs.html#a60340f60ee092cf9082b16fe7b2ed03f">QueryParser</a>(<a class="code" href="namespace_lucene_1_1_net_1_1_util.html#a92602ef4dd5a04278f4b62379d552c0b" title="Use by certain classes to match version compatibility across releases of Lucene. WARNING: When changi...">Version</a>.LUCENE_CURRENT, <span class="stringliteral">&quot;field&quot;</span>, <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_simple_analyzer.html" title="An Analyzer that filters LetterTokenizer with LowerCaseFilter ">SimpleAnalyzer</a>());</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q = qp.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a4883b4d71854640edf5307f74a72aeb4" title="Parses a query string, returning a Lucene.Net.Search.Query.">Parse</a>(args[0]);</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; Console.WriteLine(q.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html#a5c948f4230c7d9d1acf3dc38551137d5" title="Prints a query to a string, with field assumed to be the default field and omitted. The representation used is one that is supposed to be readable by QueryParser. However, there are the following limitations: If the query was created by the parser, the printed representation may not be exactly what was parsed. For example, characters that need to be escaped will be represented without the required backslash. Some of the more complicated queries (e.g. span queries) don&#39;t have a representation that can be parsed by QueryParser. ">ToString</a>(<span class="stringliteral">&quot;field&quot;</span>));</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; }</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="comment">// * Query ::= ( Clause )*</span></div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="comment">// * Clause ::= [&quot;+&quot;, &quot;-&quot;] [&lt;TermToken&gt; &quot;:&quot;] ( &lt;TermToken&gt; | &quot;(&quot; Query &quot;)&quot; )</span></div>
<div class="line"><a name="l01212"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a24eb46cf360cff010af55ab336253e4d"> 1212</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">int</span> Conjunction()</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; {</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keywordtype">int</span> ret = CONJ_NONE;</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; {</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordflow">case</span> AndToken:</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="keywordflow">case</span> OrToken:</div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; {</div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">case</span> AndToken:</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; Jj_consume_token(AndToken);</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; ret = CONJ_AND;</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keywordflow">case</span> OrToken:</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; Jj_consume_token(OrToken);</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; ret = CONJ_OR;</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; jj_la1[0] = jj_gen;</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; }</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; jj_la1[1] = jj_gen;</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; }</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; {</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>) <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; }</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> ApplicationException(<span class="stringliteral">&quot;Missing return statement in function&quot;</span>);</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; }</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div>
<div class="line"><a name="l01245"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a9aaf0149c3351cd37c3e104d6b0123d1"> 1245</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">int</span> Modifiers()</div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; {</div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keywordtype">int</span> ret = MOD_NONE;</div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; {</div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="keywordflow">case</span> NotToken:</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keywordflow">case</span> PlusToken:</div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="keywordflow">case</span> MinusToken:</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; {</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keywordflow">case</span> PlusToken:</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; Jj_consume_token(PlusToken);</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; ret = MOD_REQ;</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordflow">case</span> MinusToken:</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; Jj_consume_token(MinusToken);</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; ret = MOD_NOT;</div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keywordflow">case</span> NotToken:</div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; Jj_consume_token(NotToken);</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; ret = MOD_NOT;</div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; jj_la1[2] = jj_gen;</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; }</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; jj_la1[3] = jj_gen;</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; }</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; {</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>) <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; }</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> Exception(<span class="stringliteral">&quot;Missing return statement in function&quot;</span>);</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; }</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="comment">// This makes sure that there is no garbage after the query string</span></div>
<div class="line"><a name="l01284"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a9d7278fd703bec38f9a9e377c2502af6"> 1284</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> TopLevelQuery(String field)</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; {</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q;</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; q = <a class="code" href="_more_like_this_8cs.html#accbc7c5687907350ba0e2681b41e1b0d">Query</a>(field);</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; Jj_consume_token(0);</div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; {</div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>) <span class="keywordflow">return</span> q;</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; }</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> Exception(<span class="stringliteral">&quot;Missing return statement in function&quot;</span>);</div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; }</div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;</div>
<div class="line"><a name="l01295"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a3640fd5afa1a646a16e817b31fe3f636"> 1295</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> <a class="code" href="_more_like_this_8cs.html#accbc7c5687907350ba0e2681b41e1b0d">Query</a>(String field)</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; {</div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; List&lt;BooleanClause&gt; clauses = <span class="keyword">new</span> List&lt;BooleanClause&gt;();</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q, firstQuery = null;</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordtype">int</span> conj, mods;</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; mods = Modifiers();</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; q = Clause(field);</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; AddClause(clauses, CONJ_NONE, mods, q);</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="keywordflow">if</span> (mods == MOD_NONE)</div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; firstQuery = q;</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; {</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; {</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordflow">case</span> AndToken:</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keywordflow">case</span> OrToken:</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keywordflow">case</span> NotToken:</div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keywordflow">case</span> PlusToken:</div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">case</span> MinusToken:</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keywordflow">case</span> LParanToken:</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keywordflow">case</span> StarToken:</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keywordflow">case</span> QuotedToken:</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="keywordflow">case</span> TermToken:</div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">case</span> PrefixTermToken:</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keywordflow">case</span> WildTermToken:</div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <span class="keywordflow">case</span> RangeInStartToken:</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <span class="keywordflow">case</span> RangeExStartToken:</div>
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <span class="keywordflow">case</span> NumberToken:</div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; jj_la1[4] = jj_gen;</div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">goto</span> label_1;</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; }</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;</div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; conj = Conjunction();</div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; mods = Modifiers();</div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; q = Clause(field);</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; AddClause(clauses, conj, mods, q);</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; }</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;</div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; label_1:</div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordflow">if</span> (clauses.Count == 1 &amp;&amp; firstQuery != null)</div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; {</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>) <span class="keywordflow">return</span> firstQuery;</div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; }</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">return</span> GetBooleanQuery(clauses);</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; }</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;</div>
<div class="line"><a name="l01345"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a9349188f3cca5fc78ce42d79bf8a4e2e"> 1345</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> Clause(String field)</div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; {</div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q;</div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> fieldToken = null, boost = null;</div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keywordflow">if</span> (Jj_2_1(2))</div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; {</div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; {</div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; <span class="keywordflow">case</span> TermToken:</div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; fieldToken = Jj_consume_token(TermToken);</div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; Jj_consume_token(ColonToken);</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; field = DiscardEscapeChar(fieldToken.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>);</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <span class="keywordflow">case</span> StarToken:</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; Jj_consume_token(StarToken);</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; Jj_consume_token(ColonToken);</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; field = <span class="stringliteral">&quot;*&quot;</span>;</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; jj_la1[5] = jj_gen;</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; }</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; }</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; {</div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; ;</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div>
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; {</div>
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keywordflow">case</span> StarToken:</div>
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; <span class="keywordflow">case</span> QuotedToken:</div>
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="keywordflow">case</span> TermToken:</div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keywordflow">case</span> PrefixTermToken:</div>
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="keywordflow">case</span> WildTermToken:</div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; <span class="keywordflow">case</span> RangeInStartToken:</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keywordflow">case</span> RangeExStartToken:</div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keywordflow">case</span> NumberToken:</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; q = <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(field);</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keywordflow">case</span> LParanToken:</div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; Jj_consume_token(LParanToken);</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; q = <a class="code" href="_more_like_this_8cs.html#accbc7c5687907350ba0e2681b41e1b0d">Query</a>(field);</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; Jj_consume_token(RParenToken);</div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; {</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="keywordflow">case</span> CaratToken:</div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; Jj_consume_token(CaratToken);</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; boost = Jj_consume_token(NumberToken);</div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; jj_la1[6] = jj_gen;</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; }</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; jj_la1[7] = jj_gen;</div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; }</div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keywordflow">if</span> (boost != null)</div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; {</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; {</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keywordtype">float</span> f = <a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html">Single</a>.<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html#a77e9246897475440f8bccbe19e7417d9">Parse</a>(boost.image);</div>
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; q.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html#a2a58b600e864bed65cc21815fffa0218" title="Gets or sets the boost for this query clause to b. Documents matching this clause will (in addition t...">Boost</a> = f;</div>
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; }</div>
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; <span class="keywordflow">catch</span> (Exception)</div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; {</div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; }</div>
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; }</div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; {</div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>) <span class="keywordflow">return</span> q;</div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; }</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> Exception(<span class="stringliteral">&quot;Missing return statement in function&quot;</span>);</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; }</div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;</div>
<div class="line"><a name="l01422"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a66ac5b474588eb9b22737dbc14d286bd"> 1422</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> <a class="code" href="_more_like_this_8cs.html#a8797eb30ce21b31829d3e3a43a20e3b9">Term</a>(String field)</div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; {</div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> term, boost = null, fuzzySlop = null, goop1, goop2;</div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordtype">bool</span> prefix = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; <span class="keywordtype">bool</span> wildcard = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keywordtype">bool</span> fuzzy = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html" title="The abstract base class for queries. Instantiable subclasses are: TermQuery MultiTermQuery BooleanQ...">Query</a> q;</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; {</div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keywordflow">case</span> StarToken:</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">case</span> TermToken:</div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <span class="keywordflow">case</span> PrefixTermToken:</div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; <span class="keywordflow">case</span> WildTermToken:</div>
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="keywordflow">case</span> NumberToken:</div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; {</div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; <span class="keywordflow">case</span> TermToken:</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; term = Jj_consume_token(TermToken);</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <span class="keywordflow">case</span> StarToken:</div>
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; term = Jj_consume_token(StarToken);</div>
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; wildcard = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="keywordflow">case</span> PrefixTermToken:</div>
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; term = Jj_consume_token(PrefixTermToken);</div>
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; prefix = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="keywordflow">case</span> WildTermToken:</div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; term = Jj_consume_token(WildTermToken);</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; wildcard = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="keywordflow">case</span> NumberToken:</div>
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; term = Jj_consume_token(NumberToken);</div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; jj_la1[8] = jj_gen;</div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; }</div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; {</div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; <span class="keywordflow">case</span> FuzzySlopToken:</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; fuzzySlop = Jj_consume_token(FuzzySlopToken);</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; fuzzy = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; jj_la1[9] = jj_gen;</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; }</div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; {</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="keywordflow">case</span> CaratToken:</div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; Jj_consume_token(CaratToken);</div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; boost = Jj_consume_token(NumberToken);</div>
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; {</div>
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="keywordflow">case</span> FuzzySlopToken:</div>
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; fuzzySlop = Jj_consume_token(FuzzySlopToken);</div>
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; fuzzy = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; jj_la1[10] = jj_gen;</div>
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; }</div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; jj_la1[11] = jj_gen;</div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; }</div>
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; String termImage = DiscardEscapeChar(term.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>);</div>
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <span class="keywordflow">if</span> (wildcard)</div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; {</div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; q = GetWildcardQuery(field, termImage);</div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; }</div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (prefix)</div>
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; {</div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; q = GetPrefixQuery(field,</div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; DiscardEscapeChar(term.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>.Substring(0, (term.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>.Length - 1) - (0))));</div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; }</div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fuzzy)</div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; {</div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="keywordtype">float</span> fms = fuzzyMinSim;</div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; {</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; fms = <a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html">Single</a>.<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html#a77e9246897475440f8bccbe19e7417d9">Parse</a>(fuzzySlop.image.Substring(1));</div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; }</div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keywordflow">catch</span> (Exception)</div>
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; {</div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; }</div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <span class="keywordflow">if</span> (fms &lt; 0.0f || fms &gt; 1.0f)</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; {</div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; {</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>)</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>(</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="stringliteral">&quot;Minimum similarity for a FuzzyQuery has to be between 0.0f and 1.0f !&quot;</span>);</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; }</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; }</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; q = GetFuzzyQuery(field, termImage, fms);</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; }</div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; {</div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; q = GetFieldQuery(field, termImage);</div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; }</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; <span class="keywordflow">case</span> RangeInStartToken:</div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; Jj_consume_token(RangeInStartToken);</div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; {</div>
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <span class="keywordflow">case</span> RangeInGoopToken:</div>
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; goop1 = Jj_consume_token(RangeInGoopToken);</div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; <span class="keywordflow">case</span> RangeInQuotedToken:</div>
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; goop1 = Jj_consume_token(RangeInQuotedToken);</div>
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; jj_la1[12] = jj_gen;</div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; }</div>
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; {</div>
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; <span class="keywordflow">case</span> RangeInToToken:</div>
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; Jj_consume_token(RangeInToToken);</div>
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; jj_la1[13] = jj_gen;</div>
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; }</div>
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; {</div>
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="keywordflow">case</span> RangeInGoopToken:</div>
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; goop2 = Jj_consume_token(RangeInGoopToken);</div>
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <span class="keywordflow">case</span> RangeInQuotedToken:</div>
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; goop2 = Jj_consume_token(RangeInQuotedToken);</div>
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; jj_la1[14] = jj_gen;</div>
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; }</div>
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; Jj_consume_token(RangeInEndToken);</div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; {</div>
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <span class="keywordflow">case</span> CaratToken:</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; Jj_consume_token(CaratToken);</div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; boost = Jj_consume_token(NumberToken);</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; jj_la1[15] = jj_gen;</div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; }</div>
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <span class="keywordflow">if</span> (goop1.kind == RangeInQuotedToken)</div>
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; {</div>
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; goop1.image = goop1.image.Substring(1, (goop1.image.Length - 1) - (1));</div>
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; }</div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">if</span> (goop2.kind == RangeInQuotedToken)</div>
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; {</div>
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; goop2.image = goop2.image.Substring(1, (goop2.image.Length - 1) - (1));</div>
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; }</div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; q = GetRangeQuery(field, DiscardEscapeChar(goop1.image), DiscardEscapeChar(goop2.image), <span class="keyword">true</span>);</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; <span class="keywordflow">case</span> RangeExStartToken:</div>
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; Jj_consume_token(RangeExStartToken);</div>
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; {</div>
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; <span class="keywordflow">case</span> RangeExGoopToken:</div>
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; goop1 = Jj_consume_token(RangeExGoopToken);</div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; <span class="keywordflow">case</span> RangeExQuotedToken:</div>
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; goop1 = Jj_consume_token(RangeExQuotedToken);</div>
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; jj_la1[16] = jj_gen;</div>
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; }</div>
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; {</div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; <span class="keywordflow">case</span> RangeExToToken:</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; Jj_consume_token(RangeExToToken);</div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; jj_la1[17] = jj_gen;</div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; }</div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; {</div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <span class="keywordflow">case</span> RangeExGoopToken:</div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; goop2 = Jj_consume_token(RangeExGoopToken);</div>
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; <span class="keywordflow">case</span> RangeExQuotedToken:</div>
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; goop2 = Jj_consume_token(RangeExQuotedToken);</div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; jj_la1[18] = jj_gen;</div>
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; }</div>
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; Jj_consume_token(RangeExEndToken);</div>
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; {</div>
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; <span class="keywordflow">case</span> CaratToken:</div>
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; Jj_consume_token(CaratToken);</div>
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; boost = Jj_consume_token(NumberToken);</div>
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; jj_la1[19] = jj_gen;</div>
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; }</div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; <span class="keywordflow">if</span> (goop1.kind == RangeExQuotedToken)</div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; {</div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; goop1.image = goop1.image.Substring(1, (goop1.image.Length - 1) - (1));</div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; }</div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; <span class="keywordflow">if</span> (goop2.kind == RangeExQuotedToken)</div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; {</div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; goop2.image = goop2.image.Substring(1, (goop2.image.Length - 1) - (1));</div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; }</div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;</div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; q = GetRangeQuery(field, DiscardEscapeChar(goop1.image), DiscardEscapeChar(goop2.image), <span class="keyword">false</span>);</div>
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <span class="keywordflow">case</span> QuotedToken:</div>
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; term = Jj_consume_token(QuotedToken);</div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; {</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="keywordflow">case</span> FuzzySlopToken:</div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; fuzzySlop = Jj_consume_token(FuzzySlopToken);</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; jj_la1[20] = jj_gen;</div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; }</div>
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keywordflow">switch</span> ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)</div>
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; {</div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <span class="keywordflow">case</span> CaratToken:</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; Jj_consume_token(CaratToken);</div>
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; boost = Jj_consume_token(NumberToken);</div>
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; jj_la1[21] = jj_gen;</div>
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; }</div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; <span class="keywordtype">int</span> s = phraseSlop;</div>
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div>
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keywordflow">if</span> (fuzzySlop != null)</div>
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; {</div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; {</div>
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; s = (int)<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html">Single</a>.<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html#a77e9246897475440f8bccbe19e7417d9">Parse</a>(fuzzySlop.image.Substring(1));</div>
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; }</div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; <span class="keywordflow">catch</span> (Exception)</div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; {</div>
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; }</div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; }</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; q = GetFieldQuery(field, DiscardEscapeChar(term.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>.Substring(1, (term.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>.Length - 1) - (1))),</div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; s);</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; jj_la1[22] = jj_gen;</div>
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; Jj_consume_token(-1);</div>
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>();</div>
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; }</div>
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <span class="keywordflow">if</span> (boost != null)</div>
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; {</div>
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; <span class="keywordtype">float</span> f = (float)1.0;</div>
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; {</div>
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; f = <a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html">Single</a>.<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_single.html#a77e9246897475440f8bccbe19e7417d9">Parse</a>(boost.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#a44af6117c864fba2aba5bd9b7ac791ae" title="The string image of the token.">image</a>);</div>
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; }</div>
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <span class="keywordflow">catch</span> (Exception)</div>
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; {</div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; <span class="comment">/* Should this be handled somehow? (defaults to &quot;no boost&quot;, if</span></div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="comment"> * boost number is invalid)</span></div>
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; }</div>
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;</div>
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; <span class="comment">// avoid boosting null queries, such as those caused by stop words</span></div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="keywordflow">if</span> (q != null)</div>
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; {</div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; q.<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_query.html#a2a58b600e864bed65cc21815fffa0218" title="Gets or sets the boost for this query clause to b. Documents matching this clause will (in addition t...">Boost</a> = f;</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; }</div>
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; }</div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; {</div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">true</span>) <span class="keywordflow">return</span> q;</div>
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; }</div>
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> Exception(<span class="stringliteral">&quot;Missing return statement in function&quot;</span>);</div>
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; }</div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;</div>
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> Jj_2_1(<span class="keywordtype">int</span> xla)</div>
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; {</div>
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; jj_la = xla;</div>
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; jj_lastpos = jj_scanpos = token;</div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; {</div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <span class="keywordflow">return</span> !Jj_3_1();</div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; }</div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <span class="keywordflow">catch</span> (LookaheadSuccess)</div>
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; {</div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; }</div>
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keywordflow">finally</span></div>
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; {</div>
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; Jj_save(0, xla);</div>
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; }</div>
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; }</div>
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;</div>
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> Jj_3R_2()</div>
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; {</div>
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; <span class="keywordflow">if</span> (jj_scan_token(TermToken)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <span class="keywordflow">if</span> (jj_scan_token(ColonToken)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; }</div>
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;</div>
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> Jj_3_1()</div>
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; {</div>
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token.html" title="A Token is an occurrence of a term from the text of a field. It consists of a term&#39;s text...">Token</a> xsp;</div>
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; xsp = jj_scanpos;</div>
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; <span class="keywordflow">if</span> (Jj_3R_2())</div>
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; {</div>
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; jj_scanpos = xsp;</div>
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; <span class="keywordflow">if</span> (Jj_3R_3()) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; }</div>
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; }</div>
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div>
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> Jj_3R_3()</div>
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; {</div>
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; <span class="keywordflow">if</span> (jj_scan_token(StarToken)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; <span class="keywordflow">if</span> (jj_scan_token(ColonToken)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; }</div>
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; <span class="comment">/* Generated Token Manager. */</span></div>
<div class="line"><a name="l01755"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ae2f072177da7453eb62346f6a90d28aa"> 1755</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser_token_manager.html" title="Token Manager. ">QueryParserTokenManager</a> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ae2f072177da7453eb62346f6a90d28aa">token_source</a>;</div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; <span class="comment">/* Current token. */</span></div>
<div class="line"><a name="l01757"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#aae8d3c7940e8a2b1e089a5888284a987"> 1757</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#aae8d3c7940e8a2b1e089a5888284a987">token</a>;</div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; <span class="comment">/* Next token. */</span></div>
<div class="line"><a name="l01759"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a411dc2c905ce3dfb255a132404415a45"> 1759</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a411dc2c905ce3dfb255a132404415a45">jj_nt</a>;</div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> jj_ntk;</div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; <span class="keyword">private</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> jj_scanpos, jj_lastpos;</div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> jj_la;</div>
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> jj_gen;</div>
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span>[] jj_la1 = <span class="keyword">new</span> <span class="keywordtype">int</span>[23];</div>
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span>[] jj_la1_0;</div>
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span>[] jj_la1_1;</div>
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;</div>
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">void</span> Jj_la1_init_0()</div>
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; {</div>
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; jj_la1_0 = <span class="keyword">new</span> <span class="keywordtype">int</span>[]</div>
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; {</div>
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; 0x300, 0x300, 0x1c00, 0x1c00, 0x3ed3f00, 0x90000, 0x20000, 0x3ed2000, 0x2690000, 0x100000,</div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; 0x100000, 0x20000, 0x30000000, 0x4000000, 0x30000000, 0x20000, 0x0, 0x40000000, 0x0, 0x20000</div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; , 0x100000, 0x20000, 0x3ed0000,</div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; };</div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; }</div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;</div>
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">void</span> Jj_la1_init_1()</div>
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; {</div>
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; jj_la1_1 = <span class="keyword">new</span> <span class="keywordtype">int</span>[]</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; {</div>
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,</div>
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; 0x3, 0x0, 0x0, 0x0, 0x0,</div>
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; };</div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160; }</div>
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;</div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; <span class="keyword">private</span> JJCalls[] jj_2_rtns = <span class="keyword">new</span> JJCalls[1];</div>
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> jj_rescan = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> jj_gc = 0;</div>
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;</div>
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <a class="code" href="_stop_filter_8cs.html#a60340f60ee092cf9082b16fe7b2ed03f">QueryParser</a>(ICharStream stream)</div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; {</div>
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; token_source = <span class="keyword">new</span> QueryParserTokenManager(stream);</div>
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; token = <span class="keyword">new</span> <a class="code" href="_snowball_filter_8cs.html#a6f0cf8ca71e14fbb50a33080d0492fff">Token</a>();</div>
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; jj_ntk = -1;</div>
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; jj_gen = 0;</div>
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 23; i++) jj_la1[i] = -1;</div>
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_2_rtns.Length; i++) jj_2_rtns[i] = <span class="keyword">new</span> JJCalls();</div>
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; }</div>
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;</div>
<div class="line"><a name="l01803"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a39d2ed4f49082057b3974d42ba1c065c"> 1803</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> ReInit(<a class="code" href="interface_lucene_1_1_net_1_1_query_parsers_1_1_i_char_stream.html" title="This interface describes a character stream that maintains line and column number positions of the ch...">ICharStream</a> stream)</div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; {</div>
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; token_source.ReInit(stream);</div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; token = <span class="keyword">new</span> <a class="code" href="_snowball_filter_8cs.html#a6f0cf8ca71e14fbb50a33080d0492fff">Token</a>();</div>
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; jj_ntk = -1;</div>
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; jj_gen = 0;</div>
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 23; i++) jj_la1[i] = -1;</div>
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_2_rtns.Length; i++) jj_2_rtns[i] = <span class="keyword">new</span> JJCalls();</div>
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; }</div>
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;</div>
<div class="line"><a name="l01814"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a1363ea6078c9dae067139eaaabec9159"> 1814</a></span>&#160; <span class="keyword">protected</span> <a class="code" href="_stop_filter_8cs.html#a60340f60ee092cf9082b16fe7b2ed03f">QueryParser</a>(<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser_token_manager.html" title="Token Manager. ">QueryParserTokenManager</a> tm)</div>
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; {</div>
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; token_source = tm;</div>
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; token = <span class="keyword">new</span> <a class="code" href="_snowball_filter_8cs.html#a6f0cf8ca71e14fbb50a33080d0492fff">Token</a>();</div>
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; jj_ntk = -1;</div>
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; jj_gen = 0;</div>
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 23; i++) jj_la1[i] = -1;</div>
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_2_rtns.Length; i++) jj_2_rtns[i] = <span class="keyword">new</span> JJCalls();</div>
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; }</div>
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;</div>
<div class="line"><a name="l01825"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a756e00d8064563ca5a115a4b8adaf6bd"> 1825</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> ReInit(<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser_token_manager.html" title="Token Manager. ">QueryParserTokenManager</a> tm)</div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; {</div>
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; token_source = tm;</div>
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; token = <span class="keyword">new</span> <a class="code" href="_snowball_filter_8cs.html#a6f0cf8ca71e14fbb50a33080d0492fff">Token</a>();</div>
<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; jj_ntk = -1;</div>
<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; jj_gen = 0;</div>
<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 23; i++) jj_la1[i] = -1;</div>
<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_2_rtns.Length; i++) jj_2_rtns[i] = <span class="keyword">new</span> JJCalls();</div>
<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; }</div>
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div>
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; <span class="keyword">private</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> Jj_consume_token(<span class="keywordtype">int</span> kind)</div>
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; {</div>
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> oldToken;</div>
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; <span class="keywordflow">if</span> ((oldToken = token).next != null) token = token.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a>;</div>
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; <span class="keywordflow">else</span> token = token.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a> = token_source.GetNextToken();</div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; jj_ntk = -1;</div>
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; <span class="keywordflow">if</span> (token.kind == kind)</div>
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; {</div>
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; jj_gen++;</div>
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <span class="keywordflow">if</span> (++jj_gc &gt; 100)</div>
<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; {</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; jj_gc = 0;</div>
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_2_rtns.Length; i++)</div>
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; {</div>
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; JJCalls c = jj_2_rtns[i];</div>
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; <span class="keywordflow">while</span> (c != null)</div>
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; {</div>
<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <span class="keywordflow">if</span> (c.gen &lt; jj_gen) c.first = null;</div>
<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; c = c.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a>;</div>
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; }</div>
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; }</div>
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; }</div>
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="keywordflow">return</span> token;</div>
<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; }</div>
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; token = oldToken;</div>
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; jj_kind = kind;</div>
<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; <span class="keywordflow">throw</span> GenerateParseException();</div>
<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; }</div>
<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;</div>
<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; [Serializable]</div>
<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; <span class="keyword">private</span> sealed <span class="keyword">class </span>LookaheadSuccess : System.Exception</div>
<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; {</div>
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; }</div>
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;</div>
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <span class="keyword">private</span> LookaheadSuccess jj_ls = <span class="keyword">new</span> LookaheadSuccess();</div>
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> jj_scan_token(<span class="keywordtype">int</span> kind)</div>
<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; {</div>
<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; <span class="keywordflow">if</span> (jj_scanpos == jj_lastpos)</div>
<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; {</div>
<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; jj_la--;</div>
<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; <span class="keywordflow">if</span> (jj_scanpos.next == null)</div>
<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; {</div>
<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.GetNextToken();</div>
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; }</div>
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; {</div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; jj_lastpos = jj_scanpos = jj_scanpos.next;</div>
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; }</div>
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; }</div>
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; {</div>
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; jj_scanpos = jj_scanpos.next;</div>
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; }</div>
<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; <span class="keywordflow">if</span> (jj_rescan)</div>
<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; {</div>
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token.html" title="A Token is an occurrence of a term from the text of a field. It consists of a term&#39;s text...">Token</a> tok = token;</div>
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; <span class="keywordflow">while</span> (tok != null &amp;&amp; tok != jj_scanpos)</div>
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; {</div>
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; i++;</div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; tok = tok.next;</div>
<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160; }</div>
<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; <span class="keywordflow">if</span> (tok != null) Jj_add_error_token(kind, i);</div>
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; }</div>
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="keywordflow">if</span> (jj_scanpos.kind != kind) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; <span class="keywordflow">if</span> (jj_la == 0 &amp;&amp; jj_scanpos == jj_lastpos) <span class="keywordflow">throw</span> jj_ls;</div>
<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; }</div>
<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div>
<div class="line"><a name="l01905"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a0569e3edb227e042391eee3105037a86"> 1905</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> GetNextToken()</div>
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; {</div>
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; <span class="keywordflow">if</span> (token.next != null) token = token.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a>;</div>
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <span class="keywordflow">else</span> token = token.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a> = token_source.GetNextToken();</div>
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; jj_ntk = -1;</div>
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; jj_gen++;</div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; <span class="keywordflow">return</span> token;</div>
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; }</div>
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;</div>
<div class="line"><a name="l01915"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#aac115b6d29c048af74c2a5c11070b215"> 1915</a></span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> getToken(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; {</div>
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html" title="Describes the input token stream.">Token</a> t = token;</div>
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; index; i++)</div>
<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; {</div>
<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; <span class="keywordflow">if</span> (t.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a> != null) t = t.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a>;</div>
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; <span class="keywordflow">else</span> t = t.<a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_token.html#abc46f6594e671f55b10dbb323c4858ae" title="A reference to the next regular (non-special) token from the input stream. If this is the last token ...">next</a> = token_source.GetNextToken();</div>
<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; }</div>
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; <span class="keywordflow">return</span> t;</div>
<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; }</div>
<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;</div>
<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> Jj_ntk()</div>
<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; {</div>
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="keywordflow">if</span> ((jj_nt = token.next) == null)</div>
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <span class="keywordflow">return</span> (jj_ntk = (token.next = token_source.GetNextToken()).kind);</div>
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="keywordflow">return</span> (jj_ntk = jj_nt.kind);</div>
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; }</div>
<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;</div>
<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keyword">private</span> List&lt;int[]&gt; jj_expentries = <span class="keyword">new</span> List&lt;int[]&gt;();</div>
<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span>[] jj_expentry;</div>
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> jj_kind = -1;</div>
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span>[] jj_lasttokens = <span class="keyword">new</span> <span class="keywordtype">int</span>[100];</div>
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> jj_endpos;</div>
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;</div>
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> Jj_add_error_token(<span class="keywordtype">int</span> kind, <span class="keywordtype">int</span> pos)</div>
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; {</div>
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; <span class="keywordflow">if</span> (pos &gt;= 100) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="keywordflow">if</span> (pos == jj_endpos + 1)</div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; {</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; jj_lasttokens[jj_endpos++] = kind;</div>
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; }</div>
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (jj_endpos != 0)</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; {</div>
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; jj_expentry = <span class="keyword">new</span> <span class="keywordtype">int</span>[jj_endpos];</div>
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_endpos; i++)</div>
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; {</div>
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; jj_expentry[i] = jj_lasttokens[i];</div>
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; }</div>
<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;</div>
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="keywordflow">foreach</span> (var oldentry <span class="keywordflow">in</span> jj_expentries)</div>
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; {</div>
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; <span class="keywordflow">if</span> (oldentry.Length == jj_expentry.Length)</div>
<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; {</div>
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_expentry.Length; i++)</div>
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; {</div>
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="keywordflow">if</span> (oldentry[i] != jj_expentry[i])</div>
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; {</div>
<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; }</div>
<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; }</div>
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; jj_expentries.Add(jj_expentry);</div>
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; }</div>
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; }</div>
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; <span class="keywordflow">if</span> (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;</div>
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; }</div>
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; }</div>
<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;</div>
<div class="line"><a name="l01975"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a7c66852a0eebe31a16e529ba335ba7e9"> 1975</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a> GenerateParseException()</div>
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; {</div>
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; jj_expentries.Clear();</div>
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; <span class="keywordtype">bool</span>[] la1tokens = <span class="keyword">new</span> <span class="keywordtype">bool</span>[34];</div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="keywordflow">if</span> (jj_kind &gt;= 0)</div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; {</div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; la1tokens[jj_kind] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; jj_kind = -1;</div>
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; }</div>
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 23; i++)</div>
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; {</div>
<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keywordflow">if</span> (jj_la1[i] == jj_gen)</div>
<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; {</div>
<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; 32; j++)</div>
<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; {</div>
<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keywordflow">if</span> ((jj_la1_0[i] &amp; (1 &lt;&lt; j)) != 0)</div>
<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; {</div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; la1tokens[j] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; }</div>
<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; <span class="keywordflow">if</span> ((jj_la1_1[i] &amp; (1 &lt;&lt; j)) != 0)</div>
<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; {</div>
<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; la1tokens[32 + j] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; }</div>
<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; }</div>
<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; }</div>
<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; }</div>
<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 34; i++)</div>
<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; {</div>
<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; <span class="keywordflow">if</span> (la1tokens[i])</div>
<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; {</div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; jj_expentry = <span class="keyword">new</span> <span class="keywordtype">int</span>[1];</div>
<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; jj_expentry[0] = i;</div>
<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; jj_expentries.Add(jj_expentry);</div>
<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; }</div>
<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; }</div>
<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; jj_endpos = 0;</div>
<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; Jj_rescan_token();</div>
<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; Jj_add_error_token(0, 0);</div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="keywordtype">int</span>[][] exptokseq = <span class="keyword">new</span> <span class="keywordtype">int</span>[jj_expentries.Count][];</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; jj_expentries.Count; i++)</div>
<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; {</div>
<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; exptokseq[i] = jj_expentries[i];</div>
<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; }</div>
<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_parse_exception.html" title="This exception is thrown when parse errors are encountered. You can explicitly create objects of this...">ParseException</a>(token, exptokseq, tokenImage);</div>
<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; }</div>
<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;</div>
<div class="line"><a name="l02022"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#a34a00c18641858fd34472d17c0e866eb"> 2022</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Enable_tracing()</div>
<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; {</div>
<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; }</div>
<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div>
<div class="line"><a name="l02027"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_query_parsers_1_1_query_parser.html#ab557d683828ca41a2625a819a2517c29"> 2027</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Disable_tracing()</div>
<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; {</div>
<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; }</div>
<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;</div>
<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> Jj_rescan_token()</div>
<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; {</div>
<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; jj_rescan = <span class="keyword">true</span>;</div>
<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 1; i++)</div>
<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; {</div>
<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; {</div>
<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; JJCalls p = jj_2_rtns[i];</div>
<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keywordflow">do</span></div>
<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; {</div>
<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keywordflow">if</span> (p.gen &gt; jj_gen)</div>
<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; {</div>
<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; jj_la = p.arg;</div>
<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; jj_lastpos = jj_scanpos = p.first;</div>
<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; <span class="keywordflow">switch</span> (i)</div>
<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; {</div>
<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; <span class="keywordflow">case</span> 0:</div>
<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; Jj_3_1();</div>
<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; }</div>
<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; }</div>
<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; p = p.next;</div>
<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; } <span class="keywordflow">while</span> (p != null);</div>
<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; }</div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="keywordflow">catch</span> (LookaheadSuccess)</div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; {</div>
<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; }</div>
<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; }</div>
<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; jj_rescan = <span class="keyword">false</span>;</div>
<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; }</div>
<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;</div>
<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> Jj_save(<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> xla)</div>
<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; {</div>
<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; JJCalls p = jj_2_rtns[index];</div>
<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="keywordflow">while</span> (p.gen &gt; jj_gen)</div>
<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; {</div>
<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; <span class="keywordflow">if</span> (p.next == null)</div>
<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; {</div>
<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; p = p.next = <span class="keyword">new</span> JJCalls();</div>
<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; }</div>
<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; p = p.next;</div>
<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; }</div>
<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; p.gen = jj_gen + xla - jj_la;</div>
<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; p.first = token;</div>
<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; p.arg = xla;</div>
<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; }</div>
<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;</div>
<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; <span class="keyword">internal</span> sealed <span class="keyword">class </span>JJCalls</div>
<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; {</div>
<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keyword">internal</span> <span class="keywordtype">int</span> gen;</div>
<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="keyword">internal</span> <a class="code" href="class_lucene_1_1_net_1_1_analysis_1_1_token.html" title="A Token is an occurrence of a term from the text of a field. It consists of a term&#39;s text...">Token</a> first;</div>
<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; <span class="keyword">internal</span> <span class="keywordtype">int</span> arg;</div>
<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; <span class="keyword">internal</span> JJCalls next;</div>
<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; }</div>
<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;</div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; <span class="keyword">static</span> <a class="code" href="_stop_filter_8cs.html#a60340f60ee092cf9082b16fe7b2ed03f">QueryParser</a>()</div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; {</div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; {</div>
<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; Jj_la1_init_0();</div>
<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; Jj_la1_init_1();</div>
<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; }</div>
<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; }</div>
<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; }</div>
<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:45 for Lucene.Net by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>