📄 queryparser.cs
字号:
default:
jj_la1[19] = jj_gen;
;
break;
}
if (goop1.kind == Lucene.Net.QueryParsers.QueryParserConstants.RANGEEX_QUOTED)
{
goop1.image = goop1.image.Substring(1, (goop1.image.Length - 1) - (1));
}
if (goop2.kind == Lucene.Net.QueryParsers.QueryParserConstants.RANGEEX_QUOTED)
{
goop2.image = goop2.image.Substring(1, (goop2.image.Length - 1) - (1));
}
q = GetRangeQuery(field, DiscardEscapeChar(goop1.image), DiscardEscapeChar(goop2.image), false);
break;
case Lucene.Net.QueryParsers.QueryParserConstants.QUOTED:
term = Jj_consume_token(Lucene.Net.QueryParsers.QueryParserConstants.QUOTED);
switch ((jj_ntk == - 1) ? Jj_ntk() : jj_ntk)
{
case Lucene.Net.QueryParsers.QueryParserConstants.FUZZY_SLOP:
fuzzySlop = Jj_consume_token(Lucene.Net.QueryParsers.QueryParserConstants.FUZZY_SLOP);
break;
default:
jj_la1[20] = jj_gen;
;
break;
}
switch ((jj_ntk == - 1) ? Jj_ntk() : jj_ntk)
{
case Lucene.Net.QueryParsers.QueryParserConstants.CARAT:
Jj_consume_token(Lucene.Net.QueryParsers.QueryParserConstants.CARAT);
boost = Jj_consume_token(Lucene.Net.QueryParsers.QueryParserConstants.NUMBER);
break;
default:
jj_la1[21] = jj_gen;
;
break;
}
int s = phraseSlop;
if (fuzzySlop != null)
{
try
{
s = (int) System.Single.Parse(fuzzySlop.image.Substring(1));
}
catch (System.Exception ignored)
{
}
}
q = GetFieldQuery(field, DiscardEscapeChar(term.image.Substring(1, (term.image.Length - 1) - (1))), s);
break;
default:
jj_la1[22] = jj_gen;
Jj_consume_token(- 1);
throw new ParseException();
}
if (boost != null)
{
float f = (float) 1.0;
try
{
f = (float) System.Single.Parse(boost.image);
}
catch (System.Exception ignored)
{
/* Should this be handled somehow? (defaults to "no boost", if
* boost number is invalid)
*/
}
// avoid boosting null queries, such as those caused by stop words
if (q != null)
{
q.SetBoost(f);
}
}
{
if (true)
return q;
}
throw new System.ApplicationException("Missing return statement in function");
}
private bool Jj_2_1(int xla)
{
jj_la = xla; jj_lastpos = jj_scanpos = token;
try
{
return !Jj_3_1();
}
catch (LookaheadSuccess ls)
{
return true;
}
finally
{
Jj_save(0, xla);
}
}
private bool Jj_3R_3()
{
if (Jj_scan_token(Lucene.Net.QueryParsers.QueryParserConstants.STAR))
return true;
if (Jj_scan_token(Lucene.Net.QueryParsers.QueryParserConstants.COLON))
return true;
return false;
}
private bool Jj_3R_2()
{
if (Jj_scan_token(Lucene.Net.QueryParsers.QueryParserConstants.TERM))
return true;
if (Jj_scan_token(Lucene.Net.QueryParsers.QueryParserConstants.COLON))
return true;
return false;
}
private bool Jj_3_1()
{
Token xsp;
xsp = jj_scanpos;
if (Jj_3R_2())
{
jj_scanpos = xsp;
if (Jj_3R_3())
return true;
}
return false;
}
public QueryParserTokenManager token_source;
public Token token, jj_nt;
private int jj_ntk;
private Token jj_scanpos, jj_lastpos;
private int jj_la;
public bool lookingAhead = false;
private bool jj_semLA;
private int jj_gen;
private int[] jj_la1 = new int[23];
private static uint[] jj_la1_0;
private static uint[] jj_la1_1;
private static void Jj_la1_0()
{
jj_la1_0 = new uint[]{0x180, 0x180, 0xe00, 0xe00, 0x1f69f80, 0x48000, 0x10000, 0x1f69000, 0x1348000, 0x80000, 0x80000, 0x10000, 0x18000000, 0x2000000, 0x18000000, 0x10000, 0x80000000, 0x20000000, 0x80000000, 0x10000, 0x80000, 0x10000, 0x1f68000};
}
private static void Jj_la1_1()
{
jj_la1_1 = new uint[]{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0};
}
private JJCalls[] jj_2_rtns;
private bool jj_rescan = false;
private int jj_gc = 0;
public QueryParser(CharStream stream)
{
InitBlock();
token_source = new QueryParserTokenManager(stream);
token = new Token();
jj_ntk = - 1;
jj_gen = 0;
for (int i = 0; i < 23; i++)
jj_la1[i] = - 1;
for (int i = 0; i < jj_2_rtns.Length; i++)
jj_2_rtns[i] = new JJCalls();
}
public virtual void ReInit(CharStream stream)
{
token_source.ReInit(stream);
token = new Token();
jj_ntk = - 1;
jj_gen = 0;
for (int i = 0; i < 23; i++)
jj_la1[i] = - 1;
for (int i = 0; i < jj_2_rtns.Length; i++)
jj_2_rtns[i] = new JJCalls();
}
public QueryParser(QueryParserTokenManager tm)
{
InitBlock();
token_source = tm;
token = new Token();
jj_ntk = - 1;
jj_gen = 0;
for (int i = 0; i < 23; i++)
jj_la1[i] = - 1;
for (int i = 0; i < jj_2_rtns.Length; i++)
jj_2_rtns[i] = new JJCalls();
}
public virtual void ReInit(QueryParserTokenManager tm)
{
token_source = tm;
token = new Token();
jj_ntk = - 1;
jj_gen = 0;
for (int i = 0; i < 23; i++)
jj_la1[i] = - 1;
for (int i = 0; i < jj_2_rtns.Length; i++)
jj_2_rtns[i] = new JJCalls();
}
private Token Jj_consume_token(int kind)
{
Token oldToken;
if ((oldToken = token).next != null)
token = token.next;
else
token = token.next = token_source.GetNextToken();
jj_ntk = - 1;
if (token.kind == kind)
{
jj_gen++;
if (++jj_gc > 100)
{
jj_gc = 0;
for (int i = 0; i < jj_2_rtns.Length; i++)
{
JJCalls c = jj_2_rtns[i];
while (c != null)
{
if (c.gen < jj_gen)
c.first = null;
c = c.next;
}
}
}
return token;
}
token = oldToken;
jj_kind = kind;
throw GenerateParseException();
}
[Serializable]
private sealed class LookaheadSuccess:System.ApplicationException
{
}
private LookaheadSuccess jj_ls;
private bool Jj_scan_token(int kind)
{
if (jj_scanpos == jj_lastpos)
{
jj_la--;
if (jj_scanpos.next == null)
{
jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.GetNextToken();
}
else
{
jj_lastpos = jj_scanpos = jj_scanpos.next;
}
}
else
{
jj_scanpos = jj_scanpos.next;
}
if (jj_rescan)
{
int i = 0; Token tok = token;
while (tok != null && tok != jj_scanpos)
{
i++; tok = tok.next;
}
if (tok != null)
Jj_add_error_token(kind, i);
}
if (jj_scanpos.kind != kind)
return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos)
throw jj_ls;
return false;
}
public Token GetNextToken()
{
if (token.next != null)
token = token.next;
else
token = token.next = token_source.GetNextToken();
jj_ntk = - 1;
jj_gen++;
return token;
}
public Token GetToken(int index)
{
Token t = lookingAhead ? jj_scanpos : token;
for (int i = 0; i < index; i++)
{
if (t.next != null)
t = t.next;
else
t = t.next = token_source.GetNextToken();
}
return t;
}
private int Jj_ntk()
{
if ((jj_nt = token.next) == null)
return (jj_ntk = (token.next = token_source.GetNextToken()).kind);
else
return (jj_ntk = jj_nt.kind);
}
private System.Collections.ArrayList jj_expentries = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10));
private int[] jj_expentry;
private int jj_kind = - 1;
private int[] jj_lasttokens = new int[100];
private int jj_endpos;
private void Jj_add_error_token(int kind, int pos)
{
if (pos >= 100)
return ;
if (pos == jj_endpos + 1)
{
jj_lasttokens[jj_endpos++] = kind;
}
else if (jj_endpos != 0)
{
jj_expentry = new int[jj_endpos];
for (int i = 0; i < jj_endpos; i++)
{
jj_expentry[i] = jj_lasttokens[i];
}
bool exists = false;
for (System.Collections.IEnumerator e = jj_expentries.GetEnumerator(); e.MoveNext(); )
{
int[] oldentry = (int[]) (e.Current);
if (oldentry.Length == jj_expentry.Length)
{
exists = true;
for (int i = 0; i < jj_expentry.Length; i++)
{
if (oldentry[i] != jj_expentry[i])
{
exists = false;
break;
}
}
if (exists)
break;
}
}
if (!exists)
jj_expentries.Add(jj_expentry);
if (pos != 0)
jj_lasttokens[(jj_endpos = pos) - 1] = kind;
}
}
public virtual ParseException GenerateParseException()
{
jj_expentries.Clear();
bool[] la1tokens = new bool[33];
for (int i = 0; i < 33; i++)
{
la1tokens[i] = false;
}
if (jj_kind >= 0)
{
la1tokens[jj_kind] = true;
jj_kind = - 1;
}
for (int i = 0; i < 23; i++)
{
if (jj_la1[i] == jj_gen)
{
for (int j = 0; j < 32; j++)
{
if ((jj_la1_0[i] & (1 << j)) != 0)
{
la1tokens[j] = true;
}
if ((jj_la1_1[i] & (1 << j)) != 0)
{
la1tokens[32 + j] = true;
}
}
}
}
for (int i = 0; i < 33; i++)
{
if (la1tokens[i])
{
jj_expentry = new int[1];
jj_expentry[0] = i;
jj_expentries.Add(jj_expentry);
}
}
jj_endpos = 0;
Jj_rescan_token();
Jj_add_error_token(0, 0);
int[][] exptokseq = new int[jj_expentries.Count][];
for (int i = 0; i < jj_expentries.Count; i++)
{
exptokseq[i] = (int[]) jj_expentries[i];
}
return new ParseException(token, exptokseq, Lucene.Net.QueryParsers.QueryParserConstants.tokenImage);
}
public void Enable_tracing()
{
}
public void Disable_tracing()
{
}
private void Jj_rescan_token()
{
jj_rescan = true;
for (int i = 0; i < 1; i++)
{
JJCalls p = jj_2_rtns[i];
do
{
if (p.gen > jj_gen)
{
jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
switch (i)
{
case 0: Jj_3_1(); break;
}
}
p = p.next;
}
while (p != null);
}
jj_rescan = false;
}
private void Jj_save(int index, int xla)
{
JJCalls p = jj_2_rtns[index];
while (p.gen > jj_gen)
{
if (p.next == null)
{
p = p.next = new JJCalls(); break;
}
p = p.next;
}
p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
}
internal sealed class JJCalls
{
internal int gen;
internal Token first;
internal int arg;
internal JJCalls next;
}
static QueryParser()
{
{
Jj_la1_0();
Jj_la1_1();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -