public Query Term(String field)
{
Token term, boost = null, fuzzySlop = null, goop1, goop2;
bool prefix = false;
bool wildcard = false;
bool fuzzy = false;
Query q;
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case StarToken:
case TermToken:
case PrefixTermToken:
case WildTermToken:
case NumberToken:
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case TermToken:
term = Jj_consume_token(TermToken);
break;
case StarToken:
term = Jj_consume_token(StarToken);
wildcard = true;
break;
case PrefixTermToken:
term = Jj_consume_token(PrefixTermToken);
prefix = true;
break;
case WildTermToken:
term = Jj_consume_token(WildTermToken);
wildcard = true;
break;
case NumberToken:
term = Jj_consume_token(NumberToken);
break;
default:
jj_la1[8] = jj_gen;
Jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case FuzzySlopToken:
fuzzySlop = Jj_consume_token(FuzzySlopToken);
fuzzy = true;
break;
default:
jj_la1[9] = jj_gen;
break;
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case CaratToken:
Jj_consume_token(CaratToken);
boost = Jj_consume_token(NumberToken);
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case FuzzySlopToken:
fuzzySlop = Jj_consume_token(FuzzySlopToken);
fuzzy = true;
break;
default:
jj_la1[10] = jj_gen;
break;
}
break;
default:
jj_la1[11] = jj_gen;
break;
}
String termImage = DiscardEscapeChar(term.image);
if (wildcard)
{
q = GetWildcardQuery(field, termImage);
}
else if (prefix)
{
q = GetPrefixQuery(field,
DiscardEscapeChar(term.image.Substring(0, (term.image.Length - 1) - (0))));
}
else if (fuzzy)
{
float fms = fuzzyMinSim;
try
{
fms = Single.Parse(fuzzySlop.image.Substring(1));
}
catch (Exception)
{
}
if (fms < 0.0f || fms > 1.0f)
{
{
if (true)
throw new ParseException(
"Minimum similarity for a FuzzyQuery has to be between 0.0f and 1.0f !");
}
}
q = GetFuzzyQuery(field, termImage, fms);
}
else
{
q = GetFieldQuery(field, termImage);
}
break;
case RangeInStartToken:
Jj_consume_token(RangeInStartToken);
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case RangeInGoopToken:
goop1 = Jj_consume_token(RangeInGoopToken);
break;
case RangeInQuotedToken:
goop1 = Jj_consume_token(RangeInQuotedToken);
break;
default:
jj_la1[12] = jj_gen;
Jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case RangeInToToken:
Jj_consume_token(RangeInToToken);
break;
default:
jj_la1[13] = jj_gen;
break;
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case RangeInGoopToken:
goop2 = Jj_consume_token(RangeInGoopToken);
break;
case RangeInQuotedToken:
goop2 = Jj_consume_token(RangeInQuotedToken);
break;
default:
jj_la1[14] = jj_gen;
Jj_consume_token(-1);
throw new ParseException();
}
Jj_consume_token(RangeInEndToken);
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case CaratToken:
Jj_consume_token(CaratToken);
boost = Jj_consume_token(NumberToken);
break;
default:
jj_la1[15] = jj_gen;
break;
}
if (goop1.kind == RangeInQuotedToken)
{
goop1.image = goop1.image.Substring(1, (goop1.image.Length - 1) - (1));
}
if (goop2.kind == RangeInQuotedToken)
{
goop2.image = goop2.image.Substring(1, (goop2.image.Length - 1) - (1));
}
q = GetRangeQuery(field, DiscardEscapeChar(goop1.image), DiscardEscapeChar(goop2.image), true);
break;
case RangeExStartToken:
Jj_consume_token(RangeExStartToken);
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case RangeExGoopToken:
goop1 = Jj_consume_token(RangeExGoopToken);
break;
case RangeExQuotedToken:
goop1 = Jj_consume_token(RangeExQuotedToken);
break;
default:
jj_la1[16] = jj_gen;
Jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case RangeExToToken:
Jj_consume_token(RangeExToToken);
break;
default:
jj_la1[17] = jj_gen;
break;
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case RangeExGoopToken:
goop2 = Jj_consume_token(RangeExGoopToken);
break;
case RangeExQuotedToken:
goop2 = Jj_consume_token(RangeExQuotedToken);
break;
default:
jj_la1[18] = jj_gen;
Jj_consume_token(-1);
throw new ParseException();
}
Jj_consume_token(RangeExEndToken);
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case CaratToken:
Jj_consume_token(CaratToken);
boost = Jj_consume_token(NumberToken);
break;
default:
jj_la1[19] = jj_gen;
break;
}
if (goop1.kind == RangeExQuotedToken)
{
goop1.image = goop1.image.Substring(1, (goop1.image.Length - 1) - (1));
}
if (goop2.kind == RangeExQuotedToken)
{
goop2.image = goop2.image.Substring(1, (goop2.image.Length - 1) - (1));
}
q = GetRangeQuery(field, DiscardEscapeChar(goop1.image), DiscardEscapeChar(goop2.image), false);
break;
case QuotedToken:
term = Jj_consume_token(QuotedToken);
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case FuzzySlopToken:
fuzzySlop = Jj_consume_token(FuzzySlopToken);
break;
default:
jj_la1[20] = jj_gen;
break;
}
switch ((jj_ntk == -1) ? Jj_ntk() : jj_ntk)
{
case CaratToken:
Jj_consume_token(CaratToken);
boost = Jj_consume_token(NumberToken);
break;
default:
jj_la1[21] = jj_gen;
break;
}
int s = phraseSlop;
if (fuzzySlop != null)
{
try
{
s = (int)Single.Parse(fuzzySlop.image.Substring(1));
}
catch (Exception)
{
}
}
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 = Single.Parse(boost.image);
}
catch (Exception)
{
/* 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.Boost = f;
}
}
{
if (true) return q;
}
throw new Exception("Missing return statement in function");
}