// $ANTLR 3.5.2 /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g 2016-11-01 17:36:02
package org.apache.lucene.queryparser.flexible.aqp.parser;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import org.antlr.runtime.tree.*;
@SuppressWarnings("all")
public class ADSParser extends UnforgivingParser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "AND", "AS_CHAR", "ATOM", "AUTHOR_SEARCH",
"BOOST", "CARAT", "CLAUSE", "COLON", "COMMA", "DATE_RANGE", "DATE_TOKEN",
"DQUOTE", "D_NUMBER", "EQUAL", "ESC_CHAR", "FIELD", "FUNC_NAME", "FUZZY",
"HASH", "HOUR", "H_NUMBER", "INT", "LBRACK", "LOCAL_PARAMS", "LPAREN",
"MINUS", "MODIFIER", "M_NUMBER", "NEAR", "NOT", "NUMBER", "OPERATOR",
"OR", "PHRASE", "PHRASE_ANYTHING", "PLUS", "QANYTHING", "QCOORDINATE",
"QDATE", "QDELIMITER", "QFUNC", "QIDENTIFIER", "QMARK", "QNORMAL", "QPHRASE",
"QPHRASETRUNC", "QPOSITION", "QRANGEEX", "QRANGEIN", "QREGEX", "QTRUNCATED",
"RBRACK", "REGEX", "RPAREN", "SEMICOLON", "STAR", "S_NUMBER", "TERM_CHAR",
"TERM_NORMAL", "TERM_START_CHAR", "TERM_TRUNCATED", "TILDE", "TMODIFIER",
"TO", "WS", "XMETA", "'#'", "'<=>'", "'='", "'arXiv:'", "'arxiv:'", "'doi:'"
};
public static final int EOF=-1;
public static final int T__70=70;
public static final int T__71=71;
public static final int T__72=72;
public static final int T__73=73;
public static final int T__74=74;
public static final int T__75=75;
public static final int AND=4;
public static final int AS_CHAR=5;
public static final int ATOM=6;
public static final int AUTHOR_SEARCH=7;
public static final int BOOST=8;
public static final int CARAT=9;
public static final int CLAUSE=10;
public static final int COLON=11;
public static final int COMMA=12;
public static final int DATE_RANGE=13;
public static final int DATE_TOKEN=14;
public static final int DQUOTE=15;
public static final int D_NUMBER=16;
public static final int EQUAL=17;
public static final int ESC_CHAR=18;
public static final int FIELD=19;
public static final int FUNC_NAME=20;
public static final int FUZZY=21;
public static final int HASH=22;
public static final int HOUR=23;
public static final int H_NUMBER=24;
public static final int INT=25;
public static final int LBRACK=26;
public static final int LOCAL_PARAMS=27;
public static final int LPAREN=28;
public static final int MINUS=29;
public static final int MODIFIER=30;
public static final int M_NUMBER=31;
public static final int NEAR=32;
public static final int NOT=33;
public static final int NUMBER=34;
public static final int OPERATOR=35;
public static final int OR=36;
public static final int PHRASE=37;
public static final int PHRASE_ANYTHING=38;
public static final int PLUS=39;
public static final int QANYTHING=40;
public static final int QCOORDINATE=41;
public static final int QDATE=42;
public static final int QDELIMITER=43;
public static final int QFUNC=44;
public static final int QIDENTIFIER=45;
public static final int QMARK=46;
public static final int QNORMAL=47;
public static final int QPHRASE=48;
public static final int QPHRASETRUNC=49;
public static final int QPOSITION=50;
public static final int QRANGEEX=51;
public static final int QRANGEIN=52;
public static final int QREGEX=53;
public static final int QTRUNCATED=54;
public static final int RBRACK=55;
public static final int REGEX=56;
public static final int RPAREN=57;
public static final int SEMICOLON=58;
public static final int STAR=59;
public static final int S_NUMBER=60;
public static final int TERM_CHAR=61;
public static final int TERM_NORMAL=62;
public static final int TERM_START_CHAR=63;
public static final int TERM_TRUNCATED=64;
public static final int TILDE=65;
public static final int TMODIFIER=66;
public static final int TO=67;
public static final int WS=68;
public static final int XMETA=69;
// delegates
public UnforgivingParser[] getDelegates() {
return new UnforgivingParser[] {};
}
// delegators
public ADSParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public ADSParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return ADSParser.tokenNames; }
@Override public String getGrammarFileName() { return "/dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g"; }
public static class mainQ_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mainQ"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:44:1: mainQ : ( clauseOr )+ EOF -> ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ;
public final ADSParser.mainQ_return mainQ() throws RecognitionException {
ADSParser.mainQ_return retval = new ADSParser.mainQ_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF2=null;
ParserRuleReturnScope clauseOr1 =null;
Object EOF2_tree=null;
RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
RewriteRuleSubtreeStream stream_clauseOr=new RewriteRuleSubtreeStream(adaptor,"rule clauseOr");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:44:7: ( ( clauseOr )+ EOF -> ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:45:3: ( clauseOr )+ EOF
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:45:3: ( clauseOr )+
int cnt1=0;
loop1:
while (true) {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==AUTHOR_SEARCH||(LA1_0 >= COMMA && LA1_0 <= DATE_RANGE)||LA1_0==D_NUMBER||LA1_0==FUNC_NAME||(LA1_0 >= HOUR && LA1_0 <= H_NUMBER)||(LA1_0 >= LBRACK && LA1_0 <= MINUS)||LA1_0==NUMBER||(LA1_0 >= PHRASE && LA1_0 <= PLUS)||LA1_0==QMARK||LA1_0==REGEX||(LA1_0 >= SEMICOLON && LA1_0 <= STAR)||LA1_0==TERM_NORMAL||LA1_0==TERM_TRUNCATED||LA1_0==TO||(LA1_0 >= 70 && LA1_0 <= 75)) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:45:3: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_mainQ188);
clauseOr1=clauseOr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseOr.add(clauseOr1.getTree());
}
break;
default :
if ( cnt1 >= 1 ) break loop1;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(1, input);
throw eee;
}
cnt1++;
}
EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_mainQ191); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EOF.add(EOF2);
// AST REWRITE
// elements: clauseOr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 45:17: -> ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:45:20: ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "DEFOP"), root_1);
if ( !(stream_clauseOr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseOr.hasNext() ) {
adaptor.addChild(root_1, stream_clauseOr.nextTree());
}
stream_clauseOr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "mainQ"
public static class clauseOr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "clauseOr"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:49:1: clauseOr : (first= clauseAnd -> $first) ( or others= clauseAnd -> ^( OPERATOR[\"OR\"] ( clauseAnd )+ ) )* ;
public final ADSParser.clauseOr_return clauseOr() throws RecognitionException {
ADSParser.clauseOr_return retval = new ADSParser.clauseOr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope first =null;
ParserRuleReturnScope others =null;
ParserRuleReturnScope or3 =null;
RewriteRuleSubtreeStream stream_or=new RewriteRuleSubtreeStream(adaptor,"rule or");
RewriteRuleSubtreeStream stream_clauseAnd=new RewriteRuleSubtreeStream(adaptor,"rule clauseAnd");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:3: ( (first= clauseAnd -> $first) ( or others= clauseAnd -> ^( OPERATOR[\"OR\"] ( clauseAnd )+ ) )* )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:5: (first= clauseAnd -> $first) ( or others= clauseAnd -> ^( OPERATOR[\"OR\"] ( clauseAnd )+ ) )*
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:5: (first= clauseAnd -> $first)
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:6: first= clauseAnd
{
pushFollow(FOLLOW_clauseAnd_in_clauseOr224);
first=clauseAnd();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseAnd.add(first.getTree());
// AST REWRITE
// elements: first
// token labels:
// rule labels: first, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_first=new RewriteRuleSubtreeStream(adaptor,"rule first",first!=null?first.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 50:22: -> $first
{
adaptor.addChild(root_0, stream_first.nextTree());
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:33: ( or others= clauseAnd -> ^( OPERATOR[\"OR\"] ( clauseAnd )+ ) )*
loop2:
while (true) {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==OR) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:34: or others= clauseAnd
{
pushFollow(FOLLOW_or_in_clauseOr233);
or3=or();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_or.add(or3.getTree());
pushFollow(FOLLOW_clauseAnd_in_clauseOr237);
others=clauseAnd();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseAnd.add(others.getTree());
// AST REWRITE
// elements: clauseAnd
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 50:54: -> ^( OPERATOR[\"OR\"] ( clauseAnd )+ )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:50:57: ^( OPERATOR[\"OR\"] ( clauseAnd )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OR"), root_1);
if ( !(stream_clauseAnd.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseAnd.hasNext() ) {
adaptor.addChild(root_1, stream_clauseAnd.nextTree());
}
stream_clauseAnd.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop2;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "clauseOr"
public static class clauseAnd_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "clauseAnd"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:53:1: clauseAnd : (first= clauseNot -> $first) ( and others= clauseNot -> ^( OPERATOR[\"AND\"] ( clauseNot )+ ) )* ;
public final ADSParser.clauseAnd_return clauseAnd() throws RecognitionException {
ADSParser.clauseAnd_return retval = new ADSParser.clauseAnd_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope first =null;
ParserRuleReturnScope others =null;
ParserRuleReturnScope and4 =null;
RewriteRuleSubtreeStream stream_and=new RewriteRuleSubtreeStream(adaptor,"rule and");
RewriteRuleSubtreeStream stream_clauseNot=new RewriteRuleSubtreeStream(adaptor,"rule clauseNot");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:3: ( (first= clauseNot -> $first) ( and others= clauseNot -> ^( OPERATOR[\"AND\"] ( clauseNot )+ ) )* )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:5: (first= clauseNot -> $first) ( and others= clauseNot -> ^( OPERATOR[\"AND\"] ( clauseNot )+ ) )*
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:5: (first= clauseNot -> $first)
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:6: first= clauseNot
{
pushFollow(FOLLOW_clauseNot_in_clauseAnd266);
first=clauseNot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseNot.add(first.getTree());
// AST REWRITE
// elements: first
// token labels:
// rule labels: first, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_first=new RewriteRuleSubtreeStream(adaptor,"rule first",first!=null?first.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 54:23: -> $first
{
adaptor.addChild(root_0, stream_first.nextTree());
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:34: ( and others= clauseNot -> ^( OPERATOR[\"AND\"] ( clauseNot )+ ) )*
loop3:
while (true) {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==AND) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:35: and others= clauseNot
{
pushFollow(FOLLOW_and_in_clauseAnd276);
and4=and();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_and.add(and4.getTree());
pushFollow(FOLLOW_clauseNot_in_clauseAnd280);
others=clauseNot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseNot.add(others.getTree());
// AST REWRITE
// elements: clauseNot
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 54:56: -> ^( OPERATOR[\"AND\"] ( clauseNot )+ )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:54:59: ^( OPERATOR[\"AND\"] ( clauseNot )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "AND"), root_1);
if ( !(stream_clauseNot.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseNot.hasNext() ) {
adaptor.addChild(root_1, stream_clauseNot.nextTree());
}
stream_clauseNot.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop3;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "clauseAnd"
public static class clauseNot_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "clauseNot"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:57:1: clauseNot : (first= clauseNear -> $first) ( not others= clauseNear -> ^( OPERATOR[\"NOT\"] ( clauseNear )+ ) )* ;
public final ADSParser.clauseNot_return clauseNot() throws RecognitionException {
ADSParser.clauseNot_return retval = new ADSParser.clauseNot_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope first =null;
ParserRuleReturnScope others =null;
ParserRuleReturnScope not5 =null;
RewriteRuleSubtreeStream stream_not=new RewriteRuleSubtreeStream(adaptor,"rule not");
RewriteRuleSubtreeStream stream_clauseNear=new RewriteRuleSubtreeStream(adaptor,"rule clauseNear");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:3: ( (first= clauseNear -> $first) ( not others= clauseNear -> ^( OPERATOR[\"NOT\"] ( clauseNear )+ ) )* )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:5: (first= clauseNear -> $first) ( not others= clauseNear -> ^( OPERATOR[\"NOT\"] ( clauseNear )+ ) )*
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:5: (first= clauseNear -> $first)
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:6: first= clauseNear
{
pushFollow(FOLLOW_clauseNear_in_clauseNot309);
first=clauseNear();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseNear.add(first.getTree());
// AST REWRITE
// elements: first
// token labels:
// rule labels: first, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_first=new RewriteRuleSubtreeStream(adaptor,"rule first",first!=null?first.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 58:23: -> $first
{
adaptor.addChild(root_0, stream_first.nextTree());
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:34: ( not others= clauseNear -> ^( OPERATOR[\"NOT\"] ( clauseNear )+ ) )*
loop4:
while (true) {
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==AND) ) {
int LA4_1 = input.LA(2);
if ( (LA4_1==NOT) ) {
alt4=1;
}
}
else if ( (LA4_0==NOT) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:35: not others= clauseNear
{
pushFollow(FOLLOW_not_in_clauseNot318);
not5=not();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_not.add(not5.getTree());
pushFollow(FOLLOW_clauseNear_in_clauseNot322);
others=clauseNear();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseNear.add(others.getTree());
// AST REWRITE
// elements: clauseNear
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 58:57: -> ^( OPERATOR[\"NOT\"] ( clauseNear )+ )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:58:60: ^( OPERATOR[\"NOT\"] ( clauseNear )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "NOT"), root_1);
if ( !(stream_clauseNear.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseNear.hasNext() ) {
adaptor.addChild(root_1, stream_clauseNear.nextTree());
}
stream_clauseNear.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop4;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "clauseNot"
public static class clauseNear_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "clauseNear"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:61:1: clauseNear : (first= clauseBasic -> $first) ( near others= clauseBasic -> ^( near ( clauseBasic )+ ) )* ;
public final ADSParser.clauseNear_return clauseNear() throws RecognitionException {
ADSParser.clauseNear_return retval = new ADSParser.clauseNear_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope first =null;
ParserRuleReturnScope others =null;
ParserRuleReturnScope near6 =null;
RewriteRuleSubtreeStream stream_clauseBasic=new RewriteRuleSubtreeStream(adaptor,"rule clauseBasic");
RewriteRuleSubtreeStream stream_near=new RewriteRuleSubtreeStream(adaptor,"rule near");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:3: ( (first= clauseBasic -> $first) ( near others= clauseBasic -> ^( near ( clauseBasic )+ ) )* )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:5: (first= clauseBasic -> $first) ( near others= clauseBasic -> ^( near ( clauseBasic )+ ) )*
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:5: (first= clauseBasic -> $first)
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:6: first= clauseBasic
{
pushFollow(FOLLOW_clauseBasic_in_clauseNear353);
first=clauseBasic();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseBasic.add(first.getTree());
// AST REWRITE
// elements: first
// token labels:
// rule labels: first, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_first=new RewriteRuleSubtreeStream(adaptor,"rule first",first!=null?first.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 62:24: -> $first
{
adaptor.addChild(root_0, stream_first.nextTree());
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:35: ( near others= clauseBasic -> ^( near ( clauseBasic )+ ) )*
loop5:
while (true) {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==NEAR) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:36: near others= clauseBasic
{
pushFollow(FOLLOW_near_in_clauseNear362);
near6=near();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_near.add(near6.getTree());
pushFollow(FOLLOW_clauseBasic_in_clauseNear366);
others=clauseBasic();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseBasic.add(others.getTree());
// AST REWRITE
// elements: near, clauseBasic
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 62:60: -> ^( near ( clauseBasic )+ )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:62:63: ^( near ( clauseBasic )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_near.nextNode(), root_1);
if ( !(stream_clauseBasic.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseBasic.hasNext() ) {
adaptor.addChild(root_1, stream_clauseBasic.nextTree());
}
stream_clauseBasic.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop5;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "clauseNear"
public static class clauseBasic_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "clauseBasic"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:65:1: clauseBasic : ( ( ( lmodifier )? func_name )=> ( lmodifier )? func_name ( clauseOr )+ RPAREN ( rmodifier )? -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN ) ) ) ) | ( lmodifier LPAREN ( clauseOr )+ RPAREN )=> ( lmodifier )? LPAREN ( clauseOr )+ RPAREN ( rmodifier )? -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) ) | ( LPAREN ( clauseOr )+ RPAREN rmodifier )=> ( lmodifier )? LPAREN ( clauseOr )+ RPAREN ( rmodifier )? -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) ) | ( LPAREN )=> LPAREN ( clauseOr )+ RPAREN -> ^( CLAUSE ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) | atom );
public final ADSParser.clauseBasic_return clauseBasic() throws RecognitionException {
ADSParser.clauseBasic_return retval = new ADSParser.clauseBasic_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RPAREN10=null;
Token LPAREN13=null;
Token RPAREN15=null;
Token LPAREN18=null;
Token RPAREN20=null;
Token LPAREN22=null;
Token RPAREN24=null;
ParserRuleReturnScope lmodifier7 =null;
ParserRuleReturnScope func_name8 =null;
ParserRuleReturnScope clauseOr9 =null;
ParserRuleReturnScope rmodifier11 =null;
ParserRuleReturnScope lmodifier12 =null;
ParserRuleReturnScope clauseOr14 =null;
ParserRuleReturnScope rmodifier16 =null;
ParserRuleReturnScope lmodifier17 =null;
ParserRuleReturnScope clauseOr19 =null;
ParserRuleReturnScope rmodifier21 =null;
ParserRuleReturnScope clauseOr23 =null;
ParserRuleReturnScope atom25 =null;
Object RPAREN10_tree=null;
Object LPAREN13_tree=null;
Object RPAREN15_tree=null;
Object LPAREN18_tree=null;
Object RPAREN20_tree=null;
Object LPAREN22_tree=null;
Object RPAREN24_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_rmodifier=new RewriteRuleSubtreeStream(adaptor,"rule rmodifier");
RewriteRuleSubtreeStream stream_clauseOr=new RewriteRuleSubtreeStream(adaptor,"rule clauseOr");
RewriteRuleSubtreeStream stream_lmodifier=new RewriteRuleSubtreeStream(adaptor,"rule lmodifier");
RewriteRuleSubtreeStream stream_func_name=new RewriteRuleSubtreeStream(adaptor,"rule func_name");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:66:3: ( ( ( lmodifier )? func_name )=> ( lmodifier )? func_name ( clauseOr )+ RPAREN ( rmodifier )? -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN ) ) ) ) | ( lmodifier LPAREN ( clauseOr )+ RPAREN )=> ( lmodifier )? LPAREN ( clauseOr )+ RPAREN ( rmodifier )? -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) ) | ( LPAREN ( clauseOr )+ RPAREN rmodifier )=> ( lmodifier )? LPAREN ( clauseOr )+ RPAREN ( rmodifier )? -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) ) | ( LPAREN )=> LPAREN ( clauseOr )+ RPAREN -> ^( CLAUSE ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) | atom )
int alt16=5;
int LA16_0 = input.LA(1);
if ( (LA16_0==PLUS) ) {
int LA16_1 = input.LA(2);
if ( (synpred1_ADS()) ) {
alt16=1;
}
else if ( (synpred2_ADS()) ) {
alt16=2;
}
else if ( (synpred3_ADS()) ) {
alt16=3;
}
else if ( (true) ) {
alt16=5;
}
}
else if ( (LA16_0==MINUS) ) {
int LA16_2 = input.LA(2);
if ( (synpred1_ADS()) ) {
alt16=1;
}
else if ( (synpred2_ADS()) ) {
alt16=2;
}
else if ( (synpred3_ADS()) ) {
alt16=3;
}
else if ( (true) ) {
alt16=5;
}
}
else if ( (LA16_0==72) ) {
int LA16_3 = input.LA(2);
if ( (synpred1_ADS()) ) {
alt16=1;
}
else if ( (synpred2_ADS()) ) {
alt16=2;
}
else if ( (synpred3_ADS()) ) {
alt16=3;
}
else if ( (true) ) {
alt16=5;
}
}
else if ( (LA16_0==70) ) {
int LA16_4 = input.LA(2);
if ( (synpred1_ADS()) ) {
alt16=1;
}
else if ( (synpred2_ADS()) ) {
alt16=2;
}
else if ( (synpred3_ADS()) ) {
alt16=3;
}
else if ( (true) ) {
alt16=5;
}
}
else if ( (LA16_0==FUNC_NAME) && (synpred1_ADS())) {
alt16=1;
}
else if ( (LA16_0==LPAREN) ) {
int LA16_6 = input.LA(2);
if ( (synpred2_ADS()) ) {
alt16=2;
}
else if ( (synpred3_ADS()) ) {
alt16=3;
}
else if ( (synpred4_ADS()) ) {
alt16=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 16, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA16_0==AUTHOR_SEARCH||(LA16_0 >= COMMA && LA16_0 <= DATE_RANGE)||LA16_0==D_NUMBER||(LA16_0 >= HOUR && LA16_0 <= H_NUMBER)||(LA16_0 >= LBRACK && LA16_0 <= LOCAL_PARAMS)||LA16_0==NUMBER||(LA16_0 >= PHRASE && LA16_0 <= PHRASE_ANYTHING)||LA16_0==QMARK||LA16_0==REGEX||(LA16_0 >= SEMICOLON && LA16_0 <= STAR)||LA16_0==TERM_NORMAL||LA16_0==TERM_TRUNCATED||LA16_0==TO||LA16_0==71||(LA16_0 >= 73 && LA16_0 <= 75)) ) {
alt16=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:4: ( ( lmodifier )? func_name )=> ( lmodifier )? func_name ( clauseOr )+ RPAREN ( rmodifier )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:30: ( lmodifier )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==MINUS||LA6_0==PLUS||LA6_0==70||LA6_0==72) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:30: lmodifier
{
pushFollow(FOLLOW_lmodifier_in_clauseBasic407);
lmodifier7=lmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lmodifier.add(lmodifier7.getTree());
}
break;
}
pushFollow(FOLLOW_func_name_in_clauseBasic410);
func_name8=func_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_func_name.add(func_name8.getTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:51: ( clauseOr )+
int cnt7=0;
loop7:
while (true) {
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==AUTHOR_SEARCH||(LA7_0 >= COMMA && LA7_0 <= DATE_RANGE)||LA7_0==D_NUMBER||LA7_0==FUNC_NAME||(LA7_0 >= HOUR && LA7_0 <= H_NUMBER)||(LA7_0 >= LBRACK && LA7_0 <= MINUS)||LA7_0==NUMBER||(LA7_0 >= PHRASE && LA7_0 <= PLUS)||LA7_0==QMARK||LA7_0==REGEX||(LA7_0 >= SEMICOLON && LA7_0 <= STAR)||LA7_0==TERM_NORMAL||LA7_0==TERM_TRUNCATED||LA7_0==TO||(LA7_0 >= 70 && LA7_0 <= 75)) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:51: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_clauseBasic412);
clauseOr9=clauseOr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseOr.add(clauseOr9.getTree());
}
break;
default :
if ( cnt7 >= 1 ) break loop7;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(7, input);
throw eee;
}
cnt7++;
}
RPAREN10=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_clauseBasic416); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN10);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:69: ( rmodifier )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==CARAT||LA8_0==TILDE) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:69: rmodifier
{
pushFollow(FOLLOW_rmodifier_in_clauseBasic418);
rmodifier11=rmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rmodifier.add(rmodifier11.getTree());
}
break;
}
// AST REWRITE
// elements: rmodifier, clauseOr, lmodifier, func_name, RPAREN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 68:4: -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN ) ) ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:7: ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN ) ) ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE, "CLAUSE"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:16: ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN ) ) )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(MODIFIER, "MODIFIER"), root_2);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:27: ( lmodifier )?
if ( stream_lmodifier.hasNext() ) {
adaptor.addChild(root_2, stream_lmodifier.nextTree());
}
stream_lmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:38: ^( TMODIFIER ( rmodifier )? ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN ) )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(TMODIFIER, "TMODIFIER"), root_3);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:50: ( rmodifier )?
if ( stream_rmodifier.hasNext() ) {
adaptor.addChild(root_3, stream_rmodifier.nextTree());
}
stream_rmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:61: ^( QFUNC func_name ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) RPAREN )
{
Object root_4 = (Object)adaptor.nil();
root_4 = (Object)adaptor.becomeRoot((Object)adaptor.create(QFUNC, "QFUNC"), root_4);
adaptor.addChild(root_4, stream_func_name.nextTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:68:79: ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
Object root_5 = (Object)adaptor.nil();
root_5 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "DEFOP"), root_5);
if ( !(stream_clauseOr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseOr.hasNext() ) {
adaptor.addChild(root_5, stream_clauseOr.nextTree());
}
stream_clauseOr.reset();
adaptor.addChild(root_4, root_5);
}
adaptor.addChild(root_4, stream_RPAREN.nextNode());
adaptor.addChild(root_3, root_4);
}
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:5: ( lmodifier LPAREN ( clauseOr )+ RPAREN )=> ( lmodifier )? LPAREN ( clauseOr )+ RPAREN ( rmodifier )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:44: ( lmodifier )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==MINUS||LA9_0==PLUS||LA9_0==70||LA9_0==72) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:44: lmodifier
{
pushFollow(FOLLOW_lmodifier_in_clauseBasic477);
lmodifier12=lmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lmodifier.add(lmodifier12.getTree());
}
break;
}
LPAREN13=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_clauseBasic480); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN13);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:62: ( clauseOr )+
int cnt10=0;
loop10:
while (true) {
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==AUTHOR_SEARCH||(LA10_0 >= COMMA && LA10_0 <= DATE_RANGE)||LA10_0==D_NUMBER||LA10_0==FUNC_NAME||(LA10_0 >= HOUR && LA10_0 <= H_NUMBER)||(LA10_0 >= LBRACK && LA10_0 <= MINUS)||LA10_0==NUMBER||(LA10_0 >= PHRASE && LA10_0 <= PLUS)||LA10_0==QMARK||LA10_0==REGEX||(LA10_0 >= SEMICOLON && LA10_0 <= STAR)||LA10_0==TERM_NORMAL||LA10_0==TERM_TRUNCATED||LA10_0==TO||(LA10_0 >= 70 && LA10_0 <= 75)) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:62: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_clauseBasic482);
clauseOr14=clauseOr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseOr.add(clauseOr14.getTree());
}
break;
default :
if ( cnt10 >= 1 ) break loop10;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(10, input);
throw eee;
}
cnt10++;
}
RPAREN15=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_clauseBasic485); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN15);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:79: ( rmodifier )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==CARAT||LA11_0==TILDE) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:79: rmodifier
{
pushFollow(FOLLOW_rmodifier_in_clauseBasic487);
rmodifier16=rmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rmodifier.add(rmodifier16.getTree());
}
break;
}
// AST REWRITE
// elements: lmodifier, rmodifier, clauseOr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 70:4: -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:70:7: ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE, "CLAUSE"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:70:16: ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(MODIFIER, "MODIFIER"), root_2);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:70:27: ( lmodifier )?
if ( stream_lmodifier.hasNext() ) {
adaptor.addChild(root_2, stream_lmodifier.nextTree());
}
stream_lmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:70:38: ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(TMODIFIER, "TMODIFIER"), root_3);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:70:50: ( rmodifier )?
if ( stream_rmodifier.hasNext() ) {
adaptor.addChild(root_3, stream_rmodifier.nextTree());
}
stream_rmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:70:61: ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
Object root_4 = (Object)adaptor.nil();
root_4 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "DEFOP"), root_4);
if ( !(stream_clauseOr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseOr.hasNext() ) {
adaptor.addChild(root_4, stream_clauseOr.nextTree());
}
stream_clauseOr.reset();
adaptor.addChild(root_3, root_4);
}
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:5: ( LPAREN ( clauseOr )+ RPAREN rmodifier )=> ( lmodifier )? LPAREN ( clauseOr )+ RPAREN ( rmodifier )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:43: ( lmodifier )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==MINUS||LA12_0==PLUS||LA12_0==70||LA12_0==72) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:43: lmodifier
{
pushFollow(FOLLOW_lmodifier_in_clauseBasic539);
lmodifier17=lmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lmodifier.add(lmodifier17.getTree());
}
break;
}
LPAREN18=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_clauseBasic542); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN18);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:61: ( clauseOr )+
int cnt13=0;
loop13:
while (true) {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==AUTHOR_SEARCH||(LA13_0 >= COMMA && LA13_0 <= DATE_RANGE)||LA13_0==D_NUMBER||LA13_0==FUNC_NAME||(LA13_0 >= HOUR && LA13_0 <= H_NUMBER)||(LA13_0 >= LBRACK && LA13_0 <= MINUS)||LA13_0==NUMBER||(LA13_0 >= PHRASE && LA13_0 <= PLUS)||LA13_0==QMARK||LA13_0==REGEX||(LA13_0 >= SEMICOLON && LA13_0 <= STAR)||LA13_0==TERM_NORMAL||LA13_0==TERM_TRUNCATED||LA13_0==TO||(LA13_0 >= 70 && LA13_0 <= 75)) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:61: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_clauseBasic544);
clauseOr19=clauseOr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseOr.add(clauseOr19.getTree());
}
break;
default :
if ( cnt13 >= 1 ) break loop13;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(13, input);
throw eee;
}
cnt13++;
}
RPAREN20=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_clauseBasic547); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN20);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:78: ( rmodifier )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==CARAT||LA14_0==TILDE) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:78: rmodifier
{
pushFollow(FOLLOW_rmodifier_in_clauseBasic549);
rmodifier21=rmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rmodifier.add(rmodifier21.getTree());
}
break;
}
// AST REWRITE
// elements: rmodifier, lmodifier, clauseOr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 72:4: -> ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:72:7: ^( CLAUSE ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE, "CLAUSE"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:72:16: ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ) )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(MODIFIER, "MODIFIER"), root_2);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:72:27: ( lmodifier )?
if ( stream_lmodifier.hasNext() ) {
adaptor.addChild(root_2, stream_lmodifier.nextTree());
}
stream_lmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:72:38: ^( TMODIFIER ( rmodifier )? ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(TMODIFIER, "TMODIFIER"), root_3);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:72:50: ( rmodifier )?
if ( stream_rmodifier.hasNext() ) {
adaptor.addChild(root_3, stream_rmodifier.nextTree());
}
stream_rmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:72:61: ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
Object root_4 = (Object)adaptor.nil();
root_4 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "DEFOP"), root_4);
if ( !(stream_clauseOr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseOr.hasNext() ) {
adaptor.addChild(root_4, stream_clauseOr.nextTree());
}
stream_clauseOr.reset();
adaptor.addChild(root_3, root_4);
}
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:73:5: ( LPAREN )=> LPAREN ( clauseOr )+ RPAREN
{
LPAREN22=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_clauseBasic595); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN22);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:73:24: ( clauseOr )+
int cnt15=0;
loop15:
while (true) {
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==AUTHOR_SEARCH||(LA15_0 >= COMMA && LA15_0 <= DATE_RANGE)||LA15_0==D_NUMBER||LA15_0==FUNC_NAME||(LA15_0 >= HOUR && LA15_0 <= H_NUMBER)||(LA15_0 >= LBRACK && LA15_0 <= MINUS)||LA15_0==NUMBER||(LA15_0 >= PHRASE && LA15_0 <= PLUS)||LA15_0==QMARK||LA15_0==REGEX||(LA15_0 >= SEMICOLON && LA15_0 <= STAR)||LA15_0==TERM_NORMAL||LA15_0==TERM_TRUNCATED||LA15_0==TO||(LA15_0 >= 70 && LA15_0 <= 75)) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:73:24: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_clauseBasic597);
clauseOr23=clauseOr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseOr.add(clauseOr23.getTree());
}
break;
default :
if ( cnt15 >= 1 ) break loop15;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(15, input);
throw eee;
}
cnt15++;
}
RPAREN24=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_clauseBasic600); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN24);
// AST REWRITE
// elements: clauseOr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 74:5: -> ^( CLAUSE ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:74:8: ^( CLAUSE ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE, "CLAUSE"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:74:17: ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "DEFOP"), root_2);
if ( !(stream_clauseOr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseOr.hasNext() ) {
adaptor.addChild(root_2, stream_clauseOr.nextTree());
}
stream_clauseOr.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:75:5: atom
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_atom_in_clauseBasic624);
atom25=atom();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, atom25.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "clauseBasic"
public static class atom_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "atom"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:79:1: atom : ( ( lmodifier )? field multi_value ( rmodifier )? -> ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD field multi_value ) ) ) | ( lmodifier )? ( field )? value ( rmodifier )? -> ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD ( field )? value ) ) ) );
public final ADSParser.atom_return atom() throws RecognitionException {
ADSParser.atom_return retval = new ADSParser.atom_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope lmodifier26 =null;
ParserRuleReturnScope field27 =null;
ParserRuleReturnScope multi_value28 =null;
ParserRuleReturnScope rmodifier29 =null;
ParserRuleReturnScope lmodifier30 =null;
ParserRuleReturnScope field31 =null;
ParserRuleReturnScope value32 =null;
ParserRuleReturnScope rmodifier33 =null;
RewriteRuleSubtreeStream stream_rmodifier=new RewriteRuleSubtreeStream(adaptor,"rule rmodifier");
RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
RewriteRuleSubtreeStream stream_multi_value=new RewriteRuleSubtreeStream(adaptor,"rule multi_value");
RewriteRuleSubtreeStream stream_lmodifier=new RewriteRuleSubtreeStream(adaptor,"rule lmodifier");
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:80:3: ( ( lmodifier )? field multi_value ( rmodifier )? -> ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD field multi_value ) ) ) | ( lmodifier )? ( field )? value ( rmodifier )? -> ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD ( field )? value ) ) ) )
int alt22=2;
switch ( input.LA(1) ) {
case PLUS:
{
int LA22_1 = input.LA(2);
if ( (LA22_1==TERM_NORMAL) ) {
int LA22_5 = input.LA(3);
if ( (LA22_5==COLON) ) {
int LA22_7 = input.LA(4);
if ( (LA22_7==LPAREN) ) {
alt22=1;
}
else if ( (LA22_7==AUTHOR_SEARCH||(LA22_7 >= COMMA && LA22_7 <= DATE_RANGE)||LA22_7==D_NUMBER||(LA22_7 >= HOUR && LA22_7 <= H_NUMBER)||(LA22_7 >= LBRACK && LA22_7 <= LOCAL_PARAMS)||LA22_7==NUMBER||(LA22_7 >= PHRASE && LA22_7 <= PHRASE_ANYTHING)||LA22_7==QMARK||LA22_7==REGEX||(LA22_7 >= SEMICOLON && LA22_7 <= STAR)||LA22_7==TERM_NORMAL||LA22_7==TERM_TRUNCATED||LA22_7==TO||LA22_7==71||(LA22_7 >= 73 && LA22_7 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_5==EOF||LA22_5==AND||LA22_5==AUTHOR_SEARCH||LA22_5==CARAT||(LA22_5 >= COMMA && LA22_5 <= DATE_RANGE)||LA22_5==D_NUMBER||LA22_5==FUNC_NAME||(LA22_5 >= HOUR && LA22_5 <= H_NUMBER)||(LA22_5 >= LBRACK && LA22_5 <= MINUS)||(LA22_5 >= NEAR && LA22_5 <= NUMBER)||(LA22_5 >= OR && LA22_5 <= PLUS)||LA22_5==QMARK||(LA22_5 >= REGEX && LA22_5 <= STAR)||LA22_5==TERM_NORMAL||(LA22_5 >= TERM_TRUNCATED && LA22_5 <= TILDE)||LA22_5==TO||(LA22_5 >= 70 && LA22_5 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_1==AUTHOR_SEARCH||(LA22_1 >= COMMA && LA22_1 <= DATE_RANGE)||LA22_1==D_NUMBER||(LA22_1 >= HOUR && LA22_1 <= H_NUMBER)||(LA22_1 >= LBRACK && LA22_1 <= LOCAL_PARAMS)||LA22_1==NUMBER||(LA22_1 >= PHRASE && LA22_1 <= PHRASE_ANYTHING)||LA22_1==QMARK||LA22_1==REGEX||(LA22_1 >= SEMICOLON && LA22_1 <= STAR)||LA22_1==TERM_TRUNCATED||LA22_1==TO||LA22_1==71||(LA22_1 >= 73 && LA22_1 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 22, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MINUS:
{
int LA22_2 = input.LA(2);
if ( (LA22_2==TERM_NORMAL) ) {
int LA22_5 = input.LA(3);
if ( (LA22_5==COLON) ) {
int LA22_7 = input.LA(4);
if ( (LA22_7==LPAREN) ) {
alt22=1;
}
else if ( (LA22_7==AUTHOR_SEARCH||(LA22_7 >= COMMA && LA22_7 <= DATE_RANGE)||LA22_7==D_NUMBER||(LA22_7 >= HOUR && LA22_7 <= H_NUMBER)||(LA22_7 >= LBRACK && LA22_7 <= LOCAL_PARAMS)||LA22_7==NUMBER||(LA22_7 >= PHRASE && LA22_7 <= PHRASE_ANYTHING)||LA22_7==QMARK||LA22_7==REGEX||(LA22_7 >= SEMICOLON && LA22_7 <= STAR)||LA22_7==TERM_NORMAL||LA22_7==TERM_TRUNCATED||LA22_7==TO||LA22_7==71||(LA22_7 >= 73 && LA22_7 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_5==EOF||LA22_5==AND||LA22_5==AUTHOR_SEARCH||LA22_5==CARAT||(LA22_5 >= COMMA && LA22_5 <= DATE_RANGE)||LA22_5==D_NUMBER||LA22_5==FUNC_NAME||(LA22_5 >= HOUR && LA22_5 <= H_NUMBER)||(LA22_5 >= LBRACK && LA22_5 <= MINUS)||(LA22_5 >= NEAR && LA22_5 <= NUMBER)||(LA22_5 >= OR && LA22_5 <= PLUS)||LA22_5==QMARK||(LA22_5 >= REGEX && LA22_5 <= STAR)||LA22_5==TERM_NORMAL||(LA22_5 >= TERM_TRUNCATED && LA22_5 <= TILDE)||LA22_5==TO||(LA22_5 >= 70 && LA22_5 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_2==AUTHOR_SEARCH||(LA22_2 >= COMMA && LA22_2 <= DATE_RANGE)||LA22_2==D_NUMBER||(LA22_2 >= HOUR && LA22_2 <= H_NUMBER)||(LA22_2 >= LBRACK && LA22_2 <= LOCAL_PARAMS)||LA22_2==NUMBER||(LA22_2 >= PHRASE && LA22_2 <= PHRASE_ANYTHING)||LA22_2==QMARK||LA22_2==REGEX||(LA22_2 >= SEMICOLON && LA22_2 <= STAR)||LA22_2==TERM_TRUNCATED||LA22_2==TO||LA22_2==71||(LA22_2 >= 73 && LA22_2 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 22, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 72:
{
int LA22_3 = input.LA(2);
if ( (LA22_3==TERM_NORMAL) ) {
int LA22_5 = input.LA(3);
if ( (LA22_5==COLON) ) {
int LA22_7 = input.LA(4);
if ( (LA22_7==LPAREN) ) {
alt22=1;
}
else if ( (LA22_7==AUTHOR_SEARCH||(LA22_7 >= COMMA && LA22_7 <= DATE_RANGE)||LA22_7==D_NUMBER||(LA22_7 >= HOUR && LA22_7 <= H_NUMBER)||(LA22_7 >= LBRACK && LA22_7 <= LOCAL_PARAMS)||LA22_7==NUMBER||(LA22_7 >= PHRASE && LA22_7 <= PHRASE_ANYTHING)||LA22_7==QMARK||LA22_7==REGEX||(LA22_7 >= SEMICOLON && LA22_7 <= STAR)||LA22_7==TERM_NORMAL||LA22_7==TERM_TRUNCATED||LA22_7==TO||LA22_7==71||(LA22_7 >= 73 && LA22_7 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_5==EOF||LA22_5==AND||LA22_5==AUTHOR_SEARCH||LA22_5==CARAT||(LA22_5 >= COMMA && LA22_5 <= DATE_RANGE)||LA22_5==D_NUMBER||LA22_5==FUNC_NAME||(LA22_5 >= HOUR && LA22_5 <= H_NUMBER)||(LA22_5 >= LBRACK && LA22_5 <= MINUS)||(LA22_5 >= NEAR && LA22_5 <= NUMBER)||(LA22_5 >= OR && LA22_5 <= PLUS)||LA22_5==QMARK||(LA22_5 >= REGEX && LA22_5 <= STAR)||LA22_5==TERM_NORMAL||(LA22_5 >= TERM_TRUNCATED && LA22_5 <= TILDE)||LA22_5==TO||(LA22_5 >= 70 && LA22_5 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_3==AUTHOR_SEARCH||(LA22_3 >= COMMA && LA22_3 <= DATE_RANGE)||LA22_3==D_NUMBER||(LA22_3 >= HOUR && LA22_3 <= H_NUMBER)||(LA22_3 >= LBRACK && LA22_3 <= LOCAL_PARAMS)||LA22_3==NUMBER||(LA22_3 >= PHRASE && LA22_3 <= PHRASE_ANYTHING)||LA22_3==QMARK||LA22_3==REGEX||(LA22_3 >= SEMICOLON && LA22_3 <= STAR)||LA22_3==TERM_TRUNCATED||LA22_3==TO||LA22_3==71||(LA22_3 >= 73 && LA22_3 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 22, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 70:
{
int LA22_4 = input.LA(2);
if ( (LA22_4==TERM_NORMAL) ) {
int LA22_5 = input.LA(3);
if ( (LA22_5==COLON) ) {
int LA22_7 = input.LA(4);
if ( (LA22_7==LPAREN) ) {
alt22=1;
}
else if ( (LA22_7==AUTHOR_SEARCH||(LA22_7 >= COMMA && LA22_7 <= DATE_RANGE)||LA22_7==D_NUMBER||(LA22_7 >= HOUR && LA22_7 <= H_NUMBER)||(LA22_7 >= LBRACK && LA22_7 <= LOCAL_PARAMS)||LA22_7==NUMBER||(LA22_7 >= PHRASE && LA22_7 <= PHRASE_ANYTHING)||LA22_7==QMARK||LA22_7==REGEX||(LA22_7 >= SEMICOLON && LA22_7 <= STAR)||LA22_7==TERM_NORMAL||LA22_7==TERM_TRUNCATED||LA22_7==TO||LA22_7==71||(LA22_7 >= 73 && LA22_7 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_5==EOF||LA22_5==AND||LA22_5==AUTHOR_SEARCH||LA22_5==CARAT||(LA22_5 >= COMMA && LA22_5 <= DATE_RANGE)||LA22_5==D_NUMBER||LA22_5==FUNC_NAME||(LA22_5 >= HOUR && LA22_5 <= H_NUMBER)||(LA22_5 >= LBRACK && LA22_5 <= MINUS)||(LA22_5 >= NEAR && LA22_5 <= NUMBER)||(LA22_5 >= OR && LA22_5 <= PLUS)||LA22_5==QMARK||(LA22_5 >= REGEX && LA22_5 <= STAR)||LA22_5==TERM_NORMAL||(LA22_5 >= TERM_TRUNCATED && LA22_5 <= TILDE)||LA22_5==TO||(LA22_5 >= 70 && LA22_5 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_4==AUTHOR_SEARCH||(LA22_4 >= COMMA && LA22_4 <= DATE_RANGE)||LA22_4==D_NUMBER||(LA22_4 >= HOUR && LA22_4 <= H_NUMBER)||(LA22_4 >= LBRACK && LA22_4 <= LOCAL_PARAMS)||LA22_4==NUMBER||(LA22_4 >= PHRASE && LA22_4 <= PHRASE_ANYTHING)||LA22_4==QMARK||LA22_4==REGEX||(LA22_4 >= SEMICOLON && LA22_4 <= STAR)||LA22_4==TERM_TRUNCATED||LA22_4==TO||LA22_4==71||(LA22_4 >= 73 && LA22_4 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 22, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TERM_NORMAL:
{
int LA22_5 = input.LA(2);
if ( (LA22_5==COLON) ) {
int LA22_7 = input.LA(3);
if ( (LA22_7==LPAREN) ) {
alt22=1;
}
else if ( (LA22_7==AUTHOR_SEARCH||(LA22_7 >= COMMA && LA22_7 <= DATE_RANGE)||LA22_7==D_NUMBER||(LA22_7 >= HOUR && LA22_7 <= H_NUMBER)||(LA22_7 >= LBRACK && LA22_7 <= LOCAL_PARAMS)||LA22_7==NUMBER||(LA22_7 >= PHRASE && LA22_7 <= PHRASE_ANYTHING)||LA22_7==QMARK||LA22_7==REGEX||(LA22_7 >= SEMICOLON && LA22_7 <= STAR)||LA22_7==TERM_NORMAL||LA22_7==TERM_TRUNCATED||LA22_7==TO||LA22_7==71||(LA22_7 >= 73 && LA22_7 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 22, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA22_5==EOF||LA22_5==AND||LA22_5==AUTHOR_SEARCH||LA22_5==CARAT||(LA22_5 >= COMMA && LA22_5 <= DATE_RANGE)||LA22_5==D_NUMBER||LA22_5==FUNC_NAME||(LA22_5 >= HOUR && LA22_5 <= H_NUMBER)||(LA22_5 >= LBRACK && LA22_5 <= MINUS)||(LA22_5 >= NEAR && LA22_5 <= NUMBER)||(LA22_5 >= OR && LA22_5 <= PLUS)||LA22_5==QMARK||(LA22_5 >= REGEX && LA22_5 <= STAR)||LA22_5==TERM_NORMAL||(LA22_5 >= TERM_TRUNCATED && LA22_5 <= TILDE)||LA22_5==TO||(LA22_5 >= 70 && LA22_5 <= 75)) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 22, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case AUTHOR_SEARCH:
case COMMA:
case DATE_RANGE:
case D_NUMBER:
case HOUR:
case H_NUMBER:
case LBRACK:
case LOCAL_PARAMS:
case NUMBER:
case PHRASE:
case PHRASE_ANYTHING:
case QMARK:
case REGEX:
case SEMICOLON:
case STAR:
case TERM_TRUNCATED:
case TO:
case 71:
case 73:
case 74:
case 75:
{
alt22=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:81:3: ( lmodifier )? field multi_value ( rmodifier )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:81:3: ( lmodifier )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==MINUS||LA17_0==PLUS||LA17_0==70||LA17_0==72) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:81:3: lmodifier
{
pushFollow(FOLLOW_lmodifier_in_atom648);
lmodifier26=lmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lmodifier.add(lmodifier26.getTree());
}
break;
}
pushFollow(FOLLOW_field_in_atom651);
field27=field();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_field.add(field27.getTree());
pushFollow(FOLLOW_multi_value_in_atom653);
multi_value28=multi_value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_value.add(multi_value28.getTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:81:32: ( rmodifier )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==CARAT||LA18_0==TILDE) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:81:32: rmodifier
{
pushFollow(FOLLOW_rmodifier_in_atom655);
rmodifier29=rmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rmodifier.add(rmodifier29.getTree());
}
break;
}
// AST REWRITE
// elements: rmodifier, field, multi_value, lmodifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 82:4: -> ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD field multi_value ) ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:82:7: ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD field multi_value ) ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MODIFIER, "MODIFIER"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:82:18: ( lmodifier )?
if ( stream_lmodifier.hasNext() ) {
adaptor.addChild(root_1, stream_lmodifier.nextTree());
}
stream_lmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:82:29: ^( TMODIFIER ( rmodifier )? ^( FIELD field multi_value ) )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TMODIFIER, "TMODIFIER"), root_2);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:82:41: ( rmodifier )?
if ( stream_rmodifier.hasNext() ) {
adaptor.addChild(root_2, stream_rmodifier.nextTree());
}
stream_rmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:82:52: ^( FIELD field multi_value )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD, "FIELD"), root_3);
adaptor.addChild(root_3, stream_field.nextTree());
adaptor.addChild(root_3, stream_multi_value.nextTree());
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:5: ( lmodifier )? ( field )? value ( rmodifier )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:5: ( lmodifier )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==MINUS||LA19_0==PLUS||LA19_0==70||LA19_0==72) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:5: lmodifier
{
pushFollow(FOLLOW_lmodifier_in_atom689);
lmodifier30=lmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lmodifier.add(lmodifier30.getTree());
}
break;
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:16: ( field )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==TERM_NORMAL) ) {
int LA20_1 = input.LA(2);
if ( (LA20_1==COLON) ) {
alt20=1;
}
}
switch (alt20) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:16: field
{
pushFollow(FOLLOW_field_in_atom692);
field31=field();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_field.add(field31.getTree());
}
break;
}
pushFollow(FOLLOW_value_in_atom695);
value32=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_value.add(value32.getTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:29: ( rmodifier )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==CARAT||LA21_0==TILDE) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:83:29: rmodifier
{
pushFollow(FOLLOW_rmodifier_in_atom697);
rmodifier33=rmodifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rmodifier.add(rmodifier33.getTree());
}
break;
}
// AST REWRITE
// elements: value, lmodifier, rmodifier, field
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 84:3: -> ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD ( field )? value ) ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:84:6: ^( MODIFIER ( lmodifier )? ^( TMODIFIER ( rmodifier )? ^( FIELD ( field )? value ) ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MODIFIER, "MODIFIER"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:84:17: ( lmodifier )?
if ( stream_lmodifier.hasNext() ) {
adaptor.addChild(root_1, stream_lmodifier.nextTree());
}
stream_lmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:84:28: ^( TMODIFIER ( rmodifier )? ^( FIELD ( field )? value ) )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TMODIFIER, "TMODIFIER"), root_2);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:84:40: ( rmodifier )?
if ( stream_rmodifier.hasNext() ) {
adaptor.addChild(root_2, stream_rmodifier.nextTree());
}
stream_rmodifier.reset();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:84:51: ^( FIELD ( field )? value )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD, "FIELD"), root_3);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:84:59: ( field )?
if ( stream_field.hasNext() ) {
adaptor.addChild(root_3, stream_field.nextTree());
}
stream_field.reset();
adaptor.addChild(root_3, stream_value.nextTree());
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "atom"
public static class field_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "field"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:91:1: field : TERM_NORMAL COLON -> TERM_NORMAL ;
public final ADSParser.field_return field() throws RecognitionException {
ADSParser.field_return retval = new ADSParser.field_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TERM_NORMAL34=null;
Token COLON35=null;
Object TERM_NORMAL34_tree=null;
Object COLON35_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_TERM_NORMAL=new RewriteRuleTokenStream(adaptor,"token TERM_NORMAL");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:92:3: ( TERM_NORMAL COLON -> TERM_NORMAL )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:93:3: TERM_NORMAL COLON
{
TERM_NORMAL34=(Token)match(input,TERM_NORMAL,FOLLOW_TERM_NORMAL_in_field756); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TERM_NORMAL.add(TERM_NORMAL34);
COLON35=(Token)match(input,COLON,FOLLOW_COLON_in_field758); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON35);
// AST REWRITE
// elements: TERM_NORMAL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 93:21: -> TERM_NORMAL
{
adaptor.addChild(root_0, stream_TERM_NORMAL.nextNode());
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "field"
public static class range_term_in_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "range_term_in"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:98:1: range_term_in options {greedy=true; } : LBRACK (a= range_value -> $a ^( QANYTHING QANYTHING[\"*\"] ) ) ( ( TO )? b= range_value -> $a ( $b)? )? RBRACK ;
public final ADSParser.range_term_in_return range_term_in() throws RecognitionException {
ADSParser.range_term_in_return retval = new ADSParser.range_term_in_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LBRACK36=null;
Token TO37=null;
Token RBRACK38=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object LBRACK36_tree=null;
Object TO37_tree=null;
Object RBRACK38_tree=null;
RewriteRuleTokenStream stream_RBRACK=new RewriteRuleTokenStream(adaptor,"token RBRACK");
RewriteRuleTokenStream stream_LBRACK=new RewriteRuleTokenStream(adaptor,"token LBRACK");
RewriteRuleTokenStream stream_TO=new RewriteRuleTokenStream(adaptor,"token TO");
RewriteRuleSubtreeStream stream_range_value=new RewriteRuleSubtreeStream(adaptor,"rule range_value");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:100:3: ( LBRACK (a= range_value -> $a ^( QANYTHING QANYTHING[\"*\"] ) ) ( ( TO )? b= range_value -> $a ( $b)? )? RBRACK )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:101:8: LBRACK (a= range_value -> $a ^( QANYTHING QANYTHING[\"*\"] ) ) ( ( TO )? b= range_value -> $a ( $b)? )? RBRACK
{
LBRACK36=(Token)match(input,LBRACK,FOLLOW_LBRACK_in_range_term_in802); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACK.add(LBRACK36);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:102:8: (a= range_value -> $a ^( QANYTHING QANYTHING[\"*\"] ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:102:9: a= range_value
{
pushFollow(FOLLOW_range_value_in_range_term_in814);
a=range_value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_range_value.add(a.getTree());
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 102:23: -> $a ^( QANYTHING QANYTHING[\"*\"] )
{
adaptor.addChild(root_0, stream_a.nextTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:102:29: ^( QANYTHING QANYTHING[\"*\"] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QANYTHING, "QANYTHING"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(QANYTHING, "*"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:103:8: ( ( TO )? b= range_value -> $a ( $b)? )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==DATE_TOKEN||LA24_0==NUMBER||(LA24_0 >= PHRASE && LA24_0 <= PHRASE_ANYTHING)||LA24_0==STAR||LA24_0==TERM_NORMAL||LA24_0==TERM_TRUNCATED||LA24_0==TO) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:103:9: ( TO )? b= range_value
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:103:9: ( TO )?
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==TO) ) {
int LA23_1 = input.LA(2);
if ( (LA23_1==DATE_TOKEN||LA23_1==NUMBER||(LA23_1 >= PHRASE && LA23_1 <= PHRASE_ANYTHING)||LA23_1==STAR||LA23_1==TERM_NORMAL||LA23_1==TERM_TRUNCATED||LA23_1==TO) ) {
alt23=1;
}
}
switch (alt23) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:103:9: TO
{
TO37=(Token)match(input,TO,FOLLOW_TO_in_range_term_in837); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TO.add(TO37);
}
break;
}
pushFollow(FOLLOW_range_value_in_range_term_in843);
b=range_value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_range_value.add(b.getTree());
// AST REWRITE
// elements: b, a
// token labels:
// rule labels: a, b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 103:28: -> $a ( $b)?
{
adaptor.addChild(root_0, stream_a.nextTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:103:35: ( $b)?
if ( stream_b.hasNext() ) {
adaptor.addChild(root_0, stream_b.nextTree());
}
stream_b.reset();
}
retval.tree = root_0;
}
}
break;
}
RBRACK38=(Token)match(input,RBRACK,FOLLOW_RBRACK_in_range_term_in864); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACK.add(RBRACK38);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "range_term_in"
public static class value_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "value"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:118:1: value : ( REGEX -> ^( QREGEX REGEX ) | range_term_in -> ^( QRANGEIN range_term_in ) | identifier -> ^( QIDENTIFIER identifier ) | coordinate -> ^( QCOORDINATE coordinate ) | normal -> ^( QNORMAL normal ) | truncated -> ^( QTRUNCATED truncated ) | quoted -> ^( QPHRASE quoted ) | quoted_truncated -> ^( QPHRASETRUNC quoted_truncated ) | DATE_RANGE -> ^( QDATE DATE_RANGE ) | AUTHOR_SEARCH -> ^( QPOSITION AUTHOR_SEARCH ) | QMARK -> ^( QTRUNCATED QMARK ) | match_all -> ^( QANYTHING match_all ) | STAR -> ^( QTRUNCATED STAR ) | LOCAL_PARAMS -> ^( XMETA LOCAL_PARAMS ) | COMMA -> ^( QDELIMITER COMMA ) | SEMICOLON -> ^( QDELIMITER SEMICOLON ) );
public final ADSParser.value_return value() throws RecognitionException {
ADSParser.value_return retval = new ADSParser.value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token REGEX39=null;
Token DATE_RANGE47=null;
Token AUTHOR_SEARCH48=null;
Token QMARK49=null;
Token STAR51=null;
Token LOCAL_PARAMS52=null;
Token COMMA53=null;
Token SEMICOLON54=null;
ParserRuleReturnScope range_term_in40 =null;
ParserRuleReturnScope identifier41 =null;
ParserRuleReturnScope coordinate42 =null;
ParserRuleReturnScope normal43 =null;
ParserRuleReturnScope truncated44 =null;
ParserRuleReturnScope quoted45 =null;
ParserRuleReturnScope quoted_truncated46 =null;
ParserRuleReturnScope match_all50 =null;
Object REGEX39_tree=null;
Object DATE_RANGE47_tree=null;
Object AUTHOR_SEARCH48_tree=null;
Object QMARK49_tree=null;
Object STAR51_tree=null;
Object LOCAL_PARAMS52_tree=null;
Object COMMA53_tree=null;
Object SEMICOLON54_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_AUTHOR_SEARCH=new RewriteRuleTokenStream(adaptor,"token AUTHOR_SEARCH");
RewriteRuleTokenStream stream_REGEX=new RewriteRuleTokenStream(adaptor,"token REGEX");
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_QMARK=new RewriteRuleTokenStream(adaptor,"token QMARK");
RewriteRuleTokenStream stream_LOCAL_PARAMS=new RewriteRuleTokenStream(adaptor,"token LOCAL_PARAMS");
RewriteRuleTokenStream stream_DATE_RANGE=new RewriteRuleTokenStream(adaptor,"token DATE_RANGE");
RewriteRuleSubtreeStream stream_quoted=new RewriteRuleSubtreeStream(adaptor,"rule quoted");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
RewriteRuleSubtreeStream stream_normal=new RewriteRuleSubtreeStream(adaptor,"rule normal");
RewriteRuleSubtreeStream stream_coordinate=new RewriteRuleSubtreeStream(adaptor,"rule coordinate");
RewriteRuleSubtreeStream stream_range_term_in=new RewriteRuleSubtreeStream(adaptor,"rule range_term_in");
RewriteRuleSubtreeStream stream_truncated=new RewriteRuleSubtreeStream(adaptor,"rule truncated");
RewriteRuleSubtreeStream stream_match_all=new RewriteRuleSubtreeStream(adaptor,"rule match_all");
RewriteRuleSubtreeStream stream_quoted_truncated=new RewriteRuleSubtreeStream(adaptor,"rule quoted_truncated");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:119:3: ( REGEX -> ^( QREGEX REGEX ) | range_term_in -> ^( QRANGEIN range_term_in ) | identifier -> ^( QIDENTIFIER identifier ) | coordinate -> ^( QCOORDINATE coordinate ) | normal -> ^( QNORMAL normal ) | truncated -> ^( QTRUNCATED truncated ) | quoted -> ^( QPHRASE quoted ) | quoted_truncated -> ^( QPHRASETRUNC quoted_truncated ) | DATE_RANGE -> ^( QDATE DATE_RANGE ) | AUTHOR_SEARCH -> ^( QPOSITION AUTHOR_SEARCH ) | QMARK -> ^( QTRUNCATED QMARK ) | match_all -> ^( QANYTHING match_all ) | STAR -> ^( QTRUNCATED STAR ) | LOCAL_PARAMS -> ^( XMETA LOCAL_PARAMS ) | COMMA -> ^( QDELIMITER COMMA ) | SEMICOLON -> ^( QDELIMITER SEMICOLON ) )
int alt25=16;
switch ( input.LA(1) ) {
case REGEX:
{
alt25=1;
}
break;
case LBRACK:
{
alt25=2;
}
break;
case 73:
case 74:
case 75:
{
alt25=3;
}
break;
case D_NUMBER:
case HOUR:
case H_NUMBER:
case 71:
{
alt25=4;
}
break;
case NUMBER:
case TERM_NORMAL:
case TO:
{
alt25=5;
}
break;
case TERM_TRUNCATED:
{
alt25=6;
}
break;
case PHRASE:
{
alt25=7;
}
break;
case PHRASE_ANYTHING:
{
alt25=8;
}
break;
case DATE_RANGE:
{
alt25=9;
}
break;
case AUTHOR_SEARCH:
{
alt25=10;
}
break;
case QMARK:
{
alt25=11;
}
break;
case STAR:
{
int LA25_12 = input.LA(2);
if ( (LA25_12==COLON) ) {
alt25=12;
}
else if ( (LA25_12==EOF||LA25_12==AND||LA25_12==AUTHOR_SEARCH||LA25_12==CARAT||(LA25_12 >= COMMA && LA25_12 <= DATE_RANGE)||LA25_12==D_NUMBER||LA25_12==FUNC_NAME||(LA25_12 >= HOUR && LA25_12 <= H_NUMBER)||(LA25_12 >= LBRACK && LA25_12 <= MINUS)||(LA25_12 >= NEAR && LA25_12 <= NUMBER)||(LA25_12 >= OR && LA25_12 <= PLUS)||LA25_12==QMARK||(LA25_12 >= REGEX && LA25_12 <= STAR)||LA25_12==TERM_NORMAL||(LA25_12 >= TERM_TRUNCATED && LA25_12 <= TILDE)||LA25_12==TO||(LA25_12 >= 70 && LA25_12 <= 75)) ) {
alt25=13;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 25, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LOCAL_PARAMS:
{
alt25=14;
}
break;
case COMMA:
{
alt25=15;
}
break;
case SEMICOLON:
{
alt25=16;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 25, 0, input);
throw nvae;
}
switch (alt25) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:120:3: REGEX
{
REGEX39=(Token)match(input,REGEX,FOLLOW_REGEX_in_value883); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REGEX.add(REGEX39);
// AST REWRITE
// elements: REGEX
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 120:9: -> ^( QREGEX REGEX )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:120:12: ^( QREGEX REGEX )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QREGEX, "QREGEX"), root_1);
adaptor.addChild(root_1, stream_REGEX.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:121:4: range_term_in
{
pushFollow(FOLLOW_range_term_in_in_value897);
range_term_in40=range_term_in();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_range_term_in.add(range_term_in40.getTree());
// AST REWRITE
// elements: range_term_in
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 121:18: -> ^( QRANGEIN range_term_in )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:121:21: ^( QRANGEIN range_term_in )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QRANGEIN, "QRANGEIN"), root_1);
adaptor.addChild(root_1, stream_range_term_in.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:123:5: identifier
{
pushFollow(FOLLOW_identifier_in_value912);
identifier41=identifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_identifier.add(identifier41.getTree());
// AST REWRITE
// elements: identifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 123:16: -> ^( QIDENTIFIER identifier )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:123:19: ^( QIDENTIFIER identifier )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QIDENTIFIER, "QIDENTIFIER"), root_1);
adaptor.addChild(root_1, stream_identifier.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:124:5: coordinate
{
pushFollow(FOLLOW_coordinate_in_value926);
coordinate42=coordinate();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_coordinate.add(coordinate42.getTree());
// AST REWRITE
// elements: coordinate
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 124:16: -> ^( QCOORDINATE coordinate )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:124:19: ^( QCOORDINATE coordinate )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QCOORDINATE, "QCOORDINATE"), root_1);
adaptor.addChild(root_1, stream_coordinate.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:125:5: normal
{
pushFollow(FOLLOW_normal_in_value940);
normal43=normal();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_normal.add(normal43.getTree());
// AST REWRITE
// elements: normal
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 125:12: -> ^( QNORMAL normal )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:125:15: ^( QNORMAL normal )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QNORMAL, "QNORMAL"), root_1);
adaptor.addChild(root_1, stream_normal.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:126:5: truncated
{
pushFollow(FOLLOW_truncated_in_value955);
truncated44=truncated();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_truncated.add(truncated44.getTree());
// AST REWRITE
// elements: truncated
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 126:15: -> ^( QTRUNCATED truncated )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:126:18: ^( QTRUNCATED truncated )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QTRUNCATED, "QTRUNCATED"), root_1);
adaptor.addChild(root_1, stream_truncated.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:127:5: quoted
{
pushFollow(FOLLOW_quoted_in_value971);
quoted45=quoted();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quoted.add(quoted45.getTree());
// AST REWRITE
// elements: quoted
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 127:12: -> ^( QPHRASE quoted )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:127:15: ^( QPHRASE quoted )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPHRASE, "QPHRASE"), root_1);
adaptor.addChild(root_1, stream_quoted.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:128:5: quoted_truncated
{
pushFollow(FOLLOW_quoted_truncated_in_value985);
quoted_truncated46=quoted_truncated();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quoted_truncated.add(quoted_truncated46.getTree());
// AST REWRITE
// elements: quoted_truncated
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 128:22: -> ^( QPHRASETRUNC quoted_truncated )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:128:25: ^( QPHRASETRUNC quoted_truncated )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPHRASETRUNC, "QPHRASETRUNC"), root_1);
adaptor.addChild(root_1, stream_quoted_truncated.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:129:5: DATE_RANGE
{
DATE_RANGE47=(Token)match(input,DATE_RANGE,FOLLOW_DATE_RANGE_in_value999); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DATE_RANGE.add(DATE_RANGE47);
// AST REWRITE
// elements: DATE_RANGE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 129:16: -> ^( QDATE DATE_RANGE )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:129:19: ^( QDATE DATE_RANGE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QDATE, "QDATE"), root_1);
adaptor.addChild(root_1, stream_DATE_RANGE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 10 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:130:5: AUTHOR_SEARCH
{
AUTHOR_SEARCH48=(Token)match(input,AUTHOR_SEARCH,FOLLOW_AUTHOR_SEARCH_in_value1013); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AUTHOR_SEARCH.add(AUTHOR_SEARCH48);
// AST REWRITE
// elements: AUTHOR_SEARCH
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 130:19: -> ^( QPOSITION AUTHOR_SEARCH )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:130:22: ^( QPOSITION AUTHOR_SEARCH )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPOSITION, "QPOSITION"), root_1);
adaptor.addChild(root_1, stream_AUTHOR_SEARCH.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 11 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:131:5: QMARK
{
QMARK49=(Token)match(input,QMARK,FOLLOW_QMARK_in_value1027); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK49);
// AST REWRITE
// elements: QMARK
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 131:11: -> ^( QTRUNCATED QMARK )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:131:14: ^( QTRUNCATED QMARK )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QTRUNCATED, "QTRUNCATED"), root_1);
adaptor.addChild(root_1, stream_QMARK.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 12 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:132:5: match_all
{
pushFollow(FOLLOW_match_all_in_value1041);
match_all50=match_all();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_match_all.add(match_all50.getTree());
// AST REWRITE
// elements: match_all
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 132:15: -> ^( QANYTHING match_all )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:132:18: ^( QANYTHING match_all )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QANYTHING, "QANYTHING"), root_1);
adaptor.addChild(root_1, stream_match_all.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 13 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:133:5: STAR
{
STAR51=(Token)match(input,STAR,FOLLOW_STAR_in_value1055); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR51);
// AST REWRITE
// elements: STAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 133:10: -> ^( QTRUNCATED STAR )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:133:13: ^( QTRUNCATED STAR )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QTRUNCATED, "QTRUNCATED"), root_1);
adaptor.addChild(root_1, stream_STAR.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 14 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:134:5: LOCAL_PARAMS
{
LOCAL_PARAMS52=(Token)match(input,LOCAL_PARAMS,FOLLOW_LOCAL_PARAMS_in_value1069); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LOCAL_PARAMS.add(LOCAL_PARAMS52);
// AST REWRITE
// elements: LOCAL_PARAMS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 134:18: -> ^( XMETA LOCAL_PARAMS )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:134:21: ^( XMETA LOCAL_PARAMS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(XMETA, "XMETA"), root_1);
adaptor.addChild(root_1, stream_LOCAL_PARAMS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 15 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:135:5: COMMA
{
COMMA53=(Token)match(input,COMMA,FOLLOW_COMMA_in_value1084); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA53);
// AST REWRITE
// elements: COMMA
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 135:11: -> ^( QDELIMITER COMMA )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:135:14: ^( QDELIMITER COMMA )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QDELIMITER, "QDELIMITER"), root_1);
adaptor.addChild(root_1, stream_COMMA.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 16 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:136:5: SEMICOLON
{
SEMICOLON54=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_value1098); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON54);
// AST REWRITE
// elements: SEMICOLON
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 136:15: -> ^( QDELIMITER SEMICOLON )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:136:18: ^( QDELIMITER SEMICOLON )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QDELIMITER, "QDELIMITER"), root_1);
adaptor.addChild(root_1, stream_SEMICOLON.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "value"
public static class range_value_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "range_value"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:142:1: range_value : ( truncated -> ^( QTRUNCATED truncated ) | quoted -> ^( QPHRASE quoted ) | quoted_truncated -> ^( QPHRASETRUNC quoted_truncated ) | date -> ^( QNORMAL date ) | normal -> ^( QNORMAL normal ) | STAR -> ^( QANYTHING STAR ) );
public final ADSParser.range_value_return range_value() throws RecognitionException {
ADSParser.range_value_return retval = new ADSParser.range_value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR60=null;
ParserRuleReturnScope truncated55 =null;
ParserRuleReturnScope quoted56 =null;
ParserRuleReturnScope quoted_truncated57 =null;
ParserRuleReturnScope date58 =null;
ParserRuleReturnScope normal59 =null;
Object STAR60_tree=null;
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleSubtreeStream stream_quoted=new RewriteRuleSubtreeStream(adaptor,"rule quoted");
RewriteRuleSubtreeStream stream_date=new RewriteRuleSubtreeStream(adaptor,"rule date");
RewriteRuleSubtreeStream stream_normal=new RewriteRuleSubtreeStream(adaptor,"rule normal");
RewriteRuleSubtreeStream stream_truncated=new RewriteRuleSubtreeStream(adaptor,"rule truncated");
RewriteRuleSubtreeStream stream_quoted_truncated=new RewriteRuleSubtreeStream(adaptor,"rule quoted_truncated");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:143:3: ( truncated -> ^( QTRUNCATED truncated ) | quoted -> ^( QPHRASE quoted ) | quoted_truncated -> ^( QPHRASETRUNC quoted_truncated ) | date -> ^( QNORMAL date ) | normal -> ^( QNORMAL normal ) | STAR -> ^( QANYTHING STAR ) )
int alt26=6;
switch ( input.LA(1) ) {
case TERM_TRUNCATED:
{
alt26=1;
}
break;
case PHRASE:
{
alt26=2;
}
break;
case PHRASE_ANYTHING:
{
alt26=3;
}
break;
case DATE_TOKEN:
{
alt26=4;
}
break;
case NUMBER:
case TERM_NORMAL:
case TO:
{
alt26=5;
}
break;
case STAR:
{
alt26=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:144:3: truncated
{
pushFollow(FOLLOW_truncated_in_range_value1129);
truncated55=truncated();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_truncated.add(truncated55.getTree());
// AST REWRITE
// elements: truncated
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 144:13: -> ^( QTRUNCATED truncated )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:144:16: ^( QTRUNCATED truncated )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QTRUNCATED, "QTRUNCATED"), root_1);
adaptor.addChild(root_1, stream_truncated.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:145:5: quoted
{
pushFollow(FOLLOW_quoted_in_range_value1143);
quoted56=quoted();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quoted.add(quoted56.getTree());
// AST REWRITE
// elements: quoted
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 145:12: -> ^( QPHRASE quoted )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:145:15: ^( QPHRASE quoted )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPHRASE, "QPHRASE"), root_1);
adaptor.addChild(root_1, stream_quoted.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:146:5: quoted_truncated
{
pushFollow(FOLLOW_quoted_truncated_in_range_value1157);
quoted_truncated57=quoted_truncated();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quoted_truncated.add(quoted_truncated57.getTree());
// AST REWRITE
// elements: quoted_truncated
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 146:22: -> ^( QPHRASETRUNC quoted_truncated )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:146:25: ^( QPHRASETRUNC quoted_truncated )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPHRASETRUNC, "QPHRASETRUNC"), root_1);
adaptor.addChild(root_1, stream_quoted_truncated.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:147:5: date
{
pushFollow(FOLLOW_date_in_range_value1171);
date58=date();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_date.add(date58.getTree());
// AST REWRITE
// elements: date
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 147:10: -> ^( QNORMAL date )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:147:13: ^( QNORMAL date )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QNORMAL, "QNORMAL"), root_1);
adaptor.addChild(root_1, stream_date.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:148:5: normal
{
pushFollow(FOLLOW_normal_in_range_value1185);
normal59=normal();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_normal.add(normal59.getTree());
// AST REWRITE
// elements: normal
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 148:12: -> ^( QNORMAL normal )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:148:15: ^( QNORMAL normal )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QNORMAL, "QNORMAL"), root_1);
adaptor.addChild(root_1, stream_normal.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:149:5: STAR
{
STAR60=(Token)match(input,STAR,FOLLOW_STAR_in_range_value1200); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR60);
// AST REWRITE
// elements: STAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 149:10: -> ^( QANYTHING STAR )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:149:13: ^( QANYTHING STAR )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QANYTHING, "QANYTHING"), root_1);
adaptor.addChild(root_1, stream_STAR.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "range_value"
public static class func_name_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "func_name"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:152:1: func_name : FUNC_NAME ;
public final ADSParser.func_name_return func_name() throws RecognitionException {
ADSParser.func_name_return retval = new ADSParser.func_name_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FUNC_NAME61=null;
Object FUNC_NAME61_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:153:3: ( FUNC_NAME )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:154:3: FUNC_NAME
{
root_0 = (Object)adaptor.nil();
FUNC_NAME61=(Token)match(input,FUNC_NAME,FOLLOW_FUNC_NAME_in_func_name1224); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FUNC_NAME61_tree = (Object)adaptor.create(FUNC_NAME61);
adaptor.addChild(root_0, FUNC_NAME61_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "func_name"
public static class multi_value_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multi_value"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:159:1: multi_value : LPAREN multiClause RPAREN -> ^( CLAUSE multiClause ) ;
public final ADSParser.multi_value_return multi_value() throws RecognitionException {
ADSParser.multi_value_return retval = new ADSParser.multi_value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN62=null;
Token RPAREN64=null;
ParserRuleReturnScope multiClause63 =null;
Object LPAREN62_tree=null;
Object RPAREN64_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_multiClause=new RewriteRuleSubtreeStream(adaptor,"rule multiClause");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:160:3: ( LPAREN multiClause RPAREN -> ^( CLAUSE multiClause ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:161:3: LPAREN multiClause RPAREN
{
LPAREN62=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_multi_value1242); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN62);
pushFollow(FOLLOW_multiClause_in_multi_value1244);
multiClause63=multiClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiClause.add(multiClause63.getTree());
RPAREN64=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_multi_value1246); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN64);
// AST REWRITE
// elements: multiClause
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 161:29: -> ^( CLAUSE multiClause )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:161:32: ^( CLAUSE multiClause )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE, "CLAUSE"), root_1);
adaptor.addChild(root_1, stream_multiClause.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "multi_value"
public static class multiClause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multiClause"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:166:1: multiClause : ( clauseOr )+ -> ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) ;
public final ADSParser.multiClause_return multiClause() throws RecognitionException {
ADSParser.multiClause_return retval = new ADSParser.multiClause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope clauseOr65 =null;
RewriteRuleSubtreeStream stream_clauseOr=new RewriteRuleSubtreeStream(adaptor,"rule clauseOr");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:167:3: ( ( clauseOr )+ -> ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:172:3: ( clauseOr )+
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:172:3: ( clauseOr )+
int cnt27=0;
loop27:
while (true) {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==AUTHOR_SEARCH||(LA27_0 >= COMMA && LA27_0 <= DATE_RANGE)||LA27_0==D_NUMBER||LA27_0==FUNC_NAME||(LA27_0 >= HOUR && LA27_0 <= H_NUMBER)||(LA27_0 >= LBRACK && LA27_0 <= MINUS)||LA27_0==NUMBER||(LA27_0 >= PHRASE && LA27_0 <= PLUS)||LA27_0==QMARK||LA27_0==REGEX||(LA27_0 >= SEMICOLON && LA27_0 <= STAR)||LA27_0==TERM_NORMAL||LA27_0==TERM_TRUNCATED||LA27_0==TO||(LA27_0 >= 70 && LA27_0 <= 75)) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:172:3: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_multiClause1284);
clauseOr65=clauseOr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_clauseOr.add(clauseOr65.getTree());
}
break;
default :
if ( cnt27 >= 1 ) break loop27;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(27, input);
throw eee;
}
cnt27++;
}
// AST REWRITE
// elements: clauseOr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 172:13: -> ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:172:16: ^( OPERATOR[\"DEFOP\"] ( clauseOr )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "DEFOP"), root_1);
if ( !(stream_clauseOr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_clauseOr.hasNext() ) {
adaptor.addChild(root_1, stream_clauseOr.nextTree());
}
stream_clauseOr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "multiClause"
public static class match_all_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "match_all"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:233:1: match_all : STAR COLON STAR ;
public final ADSParser.match_all_return match_all() throws RecognitionException {
ADSParser.match_all_return retval = new ADSParser.match_all_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR66=null;
Token COLON67=null;
Token STAR68=null;
Object STAR66_tree=null;
Object COLON67_tree=null;
Object STAR68_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:234:3: ( STAR COLON STAR )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:235:3: STAR COLON STAR
{
root_0 = (Object)adaptor.nil();
STAR66=(Token)match(input,STAR,FOLLOW_STAR_in_match_all1346); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR66_tree = (Object)adaptor.create(STAR66);
adaptor.addChild(root_0, STAR66_tree);
}
COLON67=(Token)match(input,COLON,FOLLOW_COLON_in_match_all1348); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON67_tree = (Object)adaptor.create(COLON67);
adaptor.addChild(root_0, COLON67_tree);
}
STAR68=(Token)match(input,STAR,FOLLOW_STAR_in_match_all1350); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR68_tree = (Object)adaptor.create(STAR68);
adaptor.addChild(root_0, STAR68_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "match_all"
public static class normal_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "normal"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:237:1: normal : ( TERM_NORMAL | NUMBER | TO );
public final ADSParser.normal_return normal() throws RecognitionException {
ADSParser.normal_return retval = new ADSParser.normal_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set69=null;
Object set69_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:238:3: ( TERM_NORMAL | NUMBER | TO )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:
{
root_0 = (Object)adaptor.nil();
set69=input.LT(1);
if ( input.LA(1)==NUMBER||input.LA(1)==TERM_NORMAL||input.LA(1)==TO ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set69));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "normal"
public static class truncated_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "truncated"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:247:1: truncated : TERM_TRUNCATED ;
public final ADSParser.truncated_return truncated() throws RecognitionException {
ADSParser.truncated_return retval = new ADSParser.truncated_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TERM_TRUNCATED70=null;
Object TERM_TRUNCATED70_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:248:3: ( TERM_TRUNCATED )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:249:3: TERM_TRUNCATED
{
root_0 = (Object)adaptor.nil();
TERM_TRUNCATED70=(Token)match(input,TERM_TRUNCATED,FOLLOW_TERM_TRUNCATED_in_truncated1406); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TERM_TRUNCATED70_tree = (Object)adaptor.create(TERM_TRUNCATED70);
adaptor.addChild(root_0, TERM_TRUNCATED70_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "truncated"
public static class quoted_truncated_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quoted_truncated"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:253:1: quoted_truncated : PHRASE_ANYTHING ;
public final ADSParser.quoted_truncated_return quoted_truncated() throws RecognitionException {
ADSParser.quoted_truncated_return retval = new ADSParser.quoted_truncated_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PHRASE_ANYTHING71=null;
Object PHRASE_ANYTHING71_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:254:3: ( PHRASE_ANYTHING )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:255:3: PHRASE_ANYTHING
{
root_0 = (Object)adaptor.nil();
PHRASE_ANYTHING71=(Token)match(input,PHRASE_ANYTHING,FOLLOW_PHRASE_ANYTHING_in_quoted_truncated1424); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PHRASE_ANYTHING71_tree = (Object)adaptor.create(PHRASE_ANYTHING71);
adaptor.addChild(root_0, PHRASE_ANYTHING71_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "quoted_truncated"
public static class quoted_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quoted"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:258:1: quoted : PHRASE ;
public final ADSParser.quoted_return quoted() throws RecognitionException {
ADSParser.quoted_return retval = new ADSParser.quoted_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PHRASE72=null;
Object PHRASE72_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:258:9: ( PHRASE )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:259:3: PHRASE
{
root_0 = (Object)adaptor.nil();
PHRASE72=(Token)match(input,PHRASE,FOLLOW_PHRASE_in_quoted1439); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PHRASE72_tree = (Object)adaptor.create(PHRASE72);
adaptor.addChild(root_0, PHRASE72_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "quoted"
public static class lmodifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "lmodifier"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:263:1: lmodifier : ( PLUS -> PLUS[\"+\"] | MINUS -> MINUS[\"-\"] | '=' -> EQUAL[\"=\"] | '#' -> HASH[\"#\"] );
public final ADSParser.lmodifier_return lmodifier() throws RecognitionException {
ADSParser.lmodifier_return retval = new ADSParser.lmodifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS73=null;
Token MINUS74=null;
Token char_literal75=null;
Token char_literal76=null;
Object PLUS73_tree=null;
Object MINUS74_tree=null;
Object char_literal75_tree=null;
Object char_literal76_tree=null;
RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70");
RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72");
RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
RewriteRuleTokenStream stream_MINUS=new RewriteRuleTokenStream(adaptor,"token MINUS");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:263:10: ( PLUS -> PLUS[\"+\"] | MINUS -> MINUS[\"-\"] | '=' -> EQUAL[\"=\"] | '#' -> HASH[\"#\"] )
int alt28=4;
switch ( input.LA(1) ) {
case PLUS:
{
alt28=1;
}
break;
case MINUS:
{
alt28=2;
}
break;
case 72:
{
alt28=3;
}
break;
case 70:
{
alt28=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:264:3: PLUS
{
PLUS73=(Token)match(input,PLUS,FOLLOW_PLUS_in_lmodifier1453); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS73);
// AST REWRITE
// elements: PLUS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 264:8: -> PLUS[\"+\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(PLUS, "+"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:265:5: MINUS
{
MINUS74=(Token)match(input,MINUS,FOLLOW_MINUS_in_lmodifier1464); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUS.add(MINUS74);
// AST REWRITE
// elements: MINUS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 265:11: -> MINUS[\"-\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(MINUS, "-"));
}
retval.tree = root_0;
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:266:5: '='
{
char_literal75=(Token)match(input,72,FOLLOW_72_in_lmodifier1475); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_72.add(char_literal75);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 266:9: -> EQUAL[\"=\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(EQUAL, "="));
}
retval.tree = root_0;
}
}
break;
case 4 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:267:5: '#'
{
char_literal76=(Token)match(input,70,FOLLOW_70_in_lmodifier1486); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_70.add(char_literal76);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 267:9: -> HASH[\"#\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(HASH, "#"));
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "lmodifier"
public static class rmodifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rmodifier"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:272:1: rmodifier : ( TILDE ( CARAT )? -> ^( BOOST ( CARAT )? ) ^( FUZZY TILDE ) | CARAT ( TILDE )? -> ^( BOOST CARAT ) ^( FUZZY ( TILDE )? ) );
public final ADSParser.rmodifier_return rmodifier() throws RecognitionException {
ADSParser.rmodifier_return retval = new ADSParser.rmodifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TILDE77=null;
Token CARAT78=null;
Token CARAT79=null;
Token TILDE80=null;
Object TILDE77_tree=null;
Object CARAT78_tree=null;
Object CARAT79_tree=null;
Object TILDE80_tree=null;
RewriteRuleTokenStream stream_CARAT=new RewriteRuleTokenStream(adaptor,"token CARAT");
RewriteRuleTokenStream stream_TILDE=new RewriteRuleTokenStream(adaptor,"token TILDE");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:272:11: ( TILDE ( CARAT )? -> ^( BOOST ( CARAT )? ) ^( FUZZY TILDE ) | CARAT ( TILDE )? -> ^( BOOST CARAT ) ^( FUZZY ( TILDE )? ) )
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==TILDE) ) {
alt31=1;
}
else if ( (LA31_0==CARAT) ) {
alt31=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:273:3: TILDE ( CARAT )?
{
TILDE77=(Token)match(input,TILDE,FOLLOW_TILDE_in_rmodifier1507); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TILDE.add(TILDE77);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:273:9: ( CARAT )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==CARAT) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:273:9: CARAT
{
CARAT78=(Token)match(input,CARAT,FOLLOW_CARAT_in_rmodifier1509); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CARAT.add(CARAT78);
}
break;
}
// AST REWRITE
// elements: CARAT, TILDE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 273:16: -> ^( BOOST ( CARAT )? ) ^( FUZZY TILDE )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:273:19: ^( BOOST ( CARAT )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOST, "BOOST"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:273:27: ( CARAT )?
if ( stream_CARAT.hasNext() ) {
adaptor.addChild(root_1, stream_CARAT.nextNode());
}
stream_CARAT.reset();
adaptor.addChild(root_0, root_1);
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:273:35: ^( FUZZY TILDE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1);
adaptor.addChild(root_1, stream_TILDE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:274:5: CARAT ( TILDE )?
{
CARAT79=(Token)match(input,CARAT,FOLLOW_CARAT_in_rmodifier1532); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CARAT.add(CARAT79);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:274:11: ( TILDE )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==TILDE) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:274:11: TILDE
{
TILDE80=(Token)match(input,TILDE,FOLLOW_TILDE_in_rmodifier1534); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TILDE.add(TILDE80);
}
break;
}
// AST REWRITE
// elements: CARAT, TILDE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 274:18: -> ^( BOOST CARAT ) ^( FUZZY ( TILDE )? )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:274:21: ^( BOOST CARAT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOST, "BOOST"), root_1);
adaptor.addChild(root_1, stream_CARAT.nextNode());
adaptor.addChild(root_0, root_1);
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:274:36: ^( FUZZY ( TILDE )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1);
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:274:44: ( TILDE )?
if ( stream_TILDE.hasNext() ) {
adaptor.addChild(root_1, stream_TILDE.nextNode());
}
stream_TILDE.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "rmodifier"
public static class boost_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "boost"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:278:1: boost : ( CARAT -> ^( BOOST NUMBER[\"DEF\"] ) ) ( NUMBER -> ^( BOOST NUMBER ) )? ;
public final ADSParser.boost_return boost() throws RecognitionException {
ADSParser.boost_return retval = new ADSParser.boost_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CARAT81=null;
Token NUMBER82=null;
Object CARAT81_tree=null;
Object NUMBER82_tree=null;
RewriteRuleTokenStream stream_NUMBER=new RewriteRuleTokenStream(adaptor,"token NUMBER");
RewriteRuleTokenStream stream_CARAT=new RewriteRuleTokenStream(adaptor,"token CARAT");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:278:7: ( ( CARAT -> ^( BOOST NUMBER[\"DEF\"] ) ) ( NUMBER -> ^( BOOST NUMBER ) )? )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:279:3: ( CARAT -> ^( BOOST NUMBER[\"DEF\"] ) ) ( NUMBER -> ^( BOOST NUMBER ) )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:279:3: ( CARAT -> ^( BOOST NUMBER[\"DEF\"] ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:279:4: CARAT
{
CARAT81=(Token)match(input,CARAT,FOLLOW_CARAT_in_boost1565); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CARAT.add(CARAT81);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 279:10: -> ^( BOOST NUMBER[\"DEF\"] )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:279:13: ^( BOOST NUMBER[\"DEF\"] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOST, "BOOST"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(NUMBER, "DEF"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:280:3: ( NUMBER -> ^( BOOST NUMBER ) )?
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==NUMBER) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:280:4: NUMBER
{
NUMBER82=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_boost1581); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NUMBER.add(NUMBER82);
// AST REWRITE
// elements: NUMBER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 280:11: -> ^( BOOST NUMBER )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:280:14: ^( BOOST NUMBER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOST, "BOOST"), root_1);
adaptor.addChild(root_1, stream_NUMBER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "boost"
public static class fuzzy_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fuzzy"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:283:1: fuzzy : ( TILDE -> ^( FUZZY NUMBER[\"DEF\"] ) ) ( NUMBER -> ^( FUZZY NUMBER ) )? ;
public final ADSParser.fuzzy_return fuzzy() throws RecognitionException {
ADSParser.fuzzy_return retval = new ADSParser.fuzzy_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TILDE83=null;
Token NUMBER84=null;
Object TILDE83_tree=null;
Object NUMBER84_tree=null;
RewriteRuleTokenStream stream_NUMBER=new RewriteRuleTokenStream(adaptor,"token NUMBER");
RewriteRuleTokenStream stream_TILDE=new RewriteRuleTokenStream(adaptor,"token TILDE");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:283:7: ( ( TILDE -> ^( FUZZY NUMBER[\"DEF\"] ) ) ( NUMBER -> ^( FUZZY NUMBER ) )? )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:284:3: ( TILDE -> ^( FUZZY NUMBER[\"DEF\"] ) ) ( NUMBER -> ^( FUZZY NUMBER ) )?
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:284:3: ( TILDE -> ^( FUZZY NUMBER[\"DEF\"] ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:284:4: TILDE
{
TILDE83=(Token)match(input,TILDE,FOLLOW_TILDE_in_fuzzy1606); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TILDE.add(TILDE83);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 284:10: -> ^( FUZZY NUMBER[\"DEF\"] )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:284:13: ^( FUZZY NUMBER[\"DEF\"] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(NUMBER, "DEF"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:285:3: ( NUMBER -> ^( FUZZY NUMBER ) )?
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==NUMBER) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:285:4: NUMBER
{
NUMBER84=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_fuzzy1622); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NUMBER.add(NUMBER84);
// AST REWRITE
// elements: NUMBER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 285:11: -> ^( FUZZY NUMBER )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:285:14: ^( FUZZY NUMBER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUZZY, "FUZZY"), root_1);
adaptor.addChild(root_1, stream_NUMBER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "fuzzy"
public static class not_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "not"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:288:1: not : ( ( AND NOT )=> AND NOT | NOT );
public final ADSParser.not_return not() throws RecognitionException {
ADSParser.not_return retval = new ADSParser.not_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND85=null;
Token NOT86=null;
Token NOT87=null;
Object AND85_tree=null;
Object NOT86_tree=null;
Object NOT87_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:288:5: ( ( AND NOT )=> AND NOT | NOT )
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==AND) && (synpred5_ADS())) {
alt34=1;
}
else if ( (LA34_0==NOT) ) {
alt34=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:289:3: ( AND NOT )=> AND NOT
{
root_0 = (Object)adaptor.nil();
AND85=(Token)match(input,AND,FOLLOW_AND_in_not1654); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AND85_tree = (Object)adaptor.create(AND85);
adaptor.addChild(root_0, AND85_tree);
}
NOT86=(Token)match(input,NOT,FOLLOW_NOT_in_not1656); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOT86_tree = (Object)adaptor.create(NOT86);
adaptor.addChild(root_0, NOT86_tree);
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:290:5: NOT
{
root_0 = (Object)adaptor.nil();
NOT87=(Token)match(input,NOT,FOLLOW_NOT_in_not1662); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOT87_tree = (Object)adaptor.create(NOT87);
adaptor.addChild(root_0, NOT87_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "not"
public static class and_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "and"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:293:1: and : AND ;
public final ADSParser.and_return and() throws RecognitionException {
ADSParser.and_return retval = new ADSParser.and_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND88=null;
Object AND88_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:293:7: ( AND )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:294:3: AND
{
root_0 = (Object)adaptor.nil();
AND88=(Token)match(input,AND,FOLLOW_AND_in_and1680); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AND88_tree = (Object)adaptor.create(AND88);
adaptor.addChild(root_0, AND88_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "and"
public static class or_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "or"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:297:1: or : OR ;
public final ADSParser.or_return or() throws RecognitionException {
ADSParser.or_return retval = new ADSParser.or_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR89=null;
Object OR89_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:297:5: ( OR )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:298:3: OR
{
root_0 = (Object)adaptor.nil();
OR89=(Token)match(input,OR,FOLLOW_OR_in_or1697); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OR89_tree = (Object)adaptor.create(OR89);
adaptor.addChild(root_0, OR89_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "or"
public static class near_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "near"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:301:1: near : ( NEAR -> ^( OPERATOR[$NEAR] ) ) ;
public final ADSParser.near_return near() throws RecognitionException {
ADSParser.near_return retval = new ADSParser.near_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NEAR90=null;
Object NEAR90_tree=null;
RewriteRuleTokenStream stream_NEAR=new RewriteRuleTokenStream(adaptor,"token NEAR");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:301:7: ( ( NEAR -> ^( OPERATOR[$NEAR] ) ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:302:3: ( NEAR -> ^( OPERATOR[$NEAR] ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:302:3: ( NEAR -> ^( OPERATOR[$NEAR] ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:302:4: NEAR
{
NEAR90=(Token)match(input,NEAR,FOLLOW_NEAR_in_near1716); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEAR.add(NEAR90);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 302:9: -> ^( OPERATOR[$NEAR] )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:302:12: ^( OPERATOR[$NEAR] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, NEAR90), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "near"
public static class comma_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "comma"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:305:1: comma : ( COMMA )+ ;
public final ADSParser.comma_return comma() throws RecognitionException {
ADSParser.comma_return retval = new ADSParser.comma_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA91=null;
Object COMMA91_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:305:7: ( ( COMMA )+ )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:306:3: ( COMMA )+
{
root_0 = (Object)adaptor.nil();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:306:3: ( COMMA )+
int cnt35=0;
loop35:
while (true) {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==COMMA) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:306:3: COMMA
{
COMMA91=(Token)match(input,COMMA,FOLLOW_COMMA_in_comma1739); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA91_tree = (Object)adaptor.create(COMMA91);
adaptor.addChild(root_0, COMMA91_tree);
}
}
break;
default :
if ( cnt35 >= 1 ) break loop35;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(35, input);
throw eee;
}
cnt35++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "comma"
public static class semicolon_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "semicolon"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:309:1: semicolon : ( SEMICOLON )+ ;
public final ADSParser.semicolon_return semicolon() throws RecognitionException {
ADSParser.semicolon_return retval = new ADSParser.semicolon_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMICOLON92=null;
Object SEMICOLON92_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:310:3: ( ( SEMICOLON )+ )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:311:3: ( SEMICOLON )+
{
root_0 = (Object)adaptor.nil();
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:311:3: ( SEMICOLON )+
int cnt36=0;
loop36:
while (true) {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==SEMICOLON) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:311:3: SEMICOLON
{
SEMICOLON92=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_semicolon1756); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SEMICOLON92_tree = (Object)adaptor.create(SEMICOLON92);
adaptor.addChild(root_0, SEMICOLON92_tree);
}
}
break;
default :
if ( cnt36 >= 1 ) break loop36;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(36, input);
throw eee;
}
cnt36++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "semicolon"
public static class date_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "date"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:314:1: date : DATE_TOKEN ;
public final ADSParser.date_return date() throws RecognitionException {
ADSParser.date_return retval = new ADSParser.date_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DATE_TOKEN93=null;
Object DATE_TOKEN93_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:314:7: ( DATE_TOKEN )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:316:3: DATE_TOKEN
{
root_0 = (Object)adaptor.nil();
DATE_TOKEN93=(Token)match(input,DATE_TOKEN,FOLLOW_DATE_TOKEN_in_date1775); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DATE_TOKEN93_tree = (Object)adaptor.create(DATE_TOKEN93);
adaptor.addChild(root_0, DATE_TOKEN93_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "date"
public static class identifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "identifier"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:319:1: identifier : ( 'doi:' -> QNORMAL[\"doi\"] | 'arxiv:' -> QNORMAL[\"arxiv\"] | 'arXiv:' -> QNORMAL[\"arxiv\"] ) ( TERM_NORMAL -> $identifier TERM_NORMAL | PHRASE_ANYTHING -> $identifier ^( QPHRASETRUNC PHRASE_ANYTHING ) | PHRASE -> $identifier ^( QPHRASE PHRASE ) | NUMBER -> $identifier NUMBER | STAR -> $identifier ^( QANYTHING STAR ) ) ;
public final ADSParser.identifier_return identifier() throws RecognitionException {
ADSParser.identifier_return retval = new ADSParser.identifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal94=null;
Token string_literal95=null;
Token string_literal96=null;
Token TERM_NORMAL97=null;
Token PHRASE_ANYTHING98=null;
Token PHRASE99=null;
Token NUMBER100=null;
Token STAR101=null;
Object string_literal94_tree=null;
Object string_literal95_tree=null;
Object string_literal96_tree=null;
Object TERM_NORMAL97_tree=null;
Object PHRASE_ANYTHING98_tree=null;
Object PHRASE99_tree=null;
Object NUMBER100_tree=null;
Object STAR101_tree=null;
RewriteRuleTokenStream stream_NUMBER=new RewriteRuleTokenStream(adaptor,"token NUMBER");
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleTokenStream stream_PHRASE_ANYTHING=new RewriteRuleTokenStream(adaptor,"token PHRASE_ANYTHING");
RewriteRuleTokenStream stream_PHRASE=new RewriteRuleTokenStream(adaptor,"token PHRASE");
RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73");
RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74");
RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75");
RewriteRuleTokenStream stream_TERM_NORMAL=new RewriteRuleTokenStream(adaptor,"token TERM_NORMAL");
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:320:3: ( ( 'doi:' -> QNORMAL[\"doi\"] | 'arxiv:' -> QNORMAL[\"arxiv\"] | 'arXiv:' -> QNORMAL[\"arxiv\"] ) ( TERM_NORMAL -> $identifier TERM_NORMAL | PHRASE_ANYTHING -> $identifier ^( QPHRASETRUNC PHRASE_ANYTHING ) | PHRASE -> $identifier ^( QPHRASE PHRASE ) | NUMBER -> $identifier NUMBER | STAR -> $identifier ^( QANYTHING STAR ) ) )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:322:3: ( 'doi:' -> QNORMAL[\"doi\"] | 'arxiv:' -> QNORMAL[\"arxiv\"] | 'arXiv:' -> QNORMAL[\"arxiv\"] ) ( TERM_NORMAL -> $identifier TERM_NORMAL | PHRASE_ANYTHING -> $identifier ^( QPHRASETRUNC PHRASE_ANYTHING ) | PHRASE -> $identifier ^( QPHRASE PHRASE ) | NUMBER -> $identifier NUMBER | STAR -> $identifier ^( QANYTHING STAR ) )
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:322:3: ( 'doi:' -> QNORMAL[\"doi\"] | 'arxiv:' -> QNORMAL[\"arxiv\"] | 'arXiv:' -> QNORMAL[\"arxiv\"] )
int alt37=3;
switch ( input.LA(1) ) {
case 75:
{
alt37=1;
}
break;
case 74:
{
alt37=2;
}
break;
case 73:
{
alt37=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 37, 0, input);
throw nvae;
}
switch (alt37) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:322:4: 'doi:'
{
string_literal94=(Token)match(input,75,FOLLOW_75_in_identifier1797); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_75.add(string_literal94);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 322:11: -> QNORMAL[\"doi\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(QNORMAL, "doi"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:323:4: 'arxiv:'
{
string_literal95=(Token)match(input,74,FOLLOW_74_in_identifier1807); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_74.add(string_literal95);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 323:13: -> QNORMAL[\"arxiv\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(QNORMAL, "arxiv"));
}
retval.tree = root_0;
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:324:4: 'arXiv:'
{
string_literal96=(Token)match(input,73,FOLLOW_73_in_identifier1817); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_73.add(string_literal96);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 324:14: -> QNORMAL[\"arxiv\"]
{
adaptor.addChild(root_0, (Object)adaptor.create(QNORMAL, "arxiv"));
}
retval.tree = root_0;
}
}
break;
}
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:325:3: ( TERM_NORMAL -> $identifier TERM_NORMAL | PHRASE_ANYTHING -> $identifier ^( QPHRASETRUNC PHRASE_ANYTHING ) | PHRASE -> $identifier ^( QPHRASE PHRASE ) | NUMBER -> $identifier NUMBER | STAR -> $identifier ^( QANYTHING STAR ) )
int alt38=5;
switch ( input.LA(1) ) {
case TERM_NORMAL:
{
alt38=1;
}
break;
case PHRASE_ANYTHING:
{
alt38=2;
}
break;
case PHRASE:
{
alt38=3;
}
break;
case NUMBER:
{
alt38=4;
}
break;
case STAR:
{
alt38=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:325:4: TERM_NORMAL
{
TERM_NORMAL97=(Token)match(input,TERM_NORMAL,FOLLOW_TERM_NORMAL_in_identifier1829); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TERM_NORMAL.add(TERM_NORMAL97);
// AST REWRITE
// elements: identifier, TERM_NORMAL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 325:16: -> $identifier TERM_NORMAL
{
adaptor.addChild(root_0, stream_retval.nextTree());
adaptor.addChild(root_0, stream_TERM_NORMAL.nextNode());
}
retval.tree = root_0;
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:326:5: PHRASE_ANYTHING
{
PHRASE_ANYTHING98=(Token)match(input,PHRASE_ANYTHING,FOLLOW_PHRASE_ANYTHING_in_identifier1842); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PHRASE_ANYTHING.add(PHRASE_ANYTHING98);
// AST REWRITE
// elements: identifier, PHRASE_ANYTHING
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 326:22: -> $identifier ^( QPHRASETRUNC PHRASE_ANYTHING )
{
adaptor.addChild(root_0, stream_retval.nextTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:326:37: ^( QPHRASETRUNC PHRASE_ANYTHING )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPHRASETRUNC, "QPHRASETRUNC"), root_1);
adaptor.addChild(root_1, stream_PHRASE_ANYTHING.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:327:5: PHRASE
{
PHRASE99=(Token)match(input,PHRASE,FOLLOW_PHRASE_in_identifier1860); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PHRASE.add(PHRASE99);
// AST REWRITE
// elements: PHRASE, identifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 327:12: -> $identifier ^( QPHRASE PHRASE )
{
adaptor.addChild(root_0, stream_retval.nextTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:327:27: ^( QPHRASE PHRASE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QPHRASE, "QPHRASE"), root_1);
adaptor.addChild(root_1, stream_PHRASE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:328:5: NUMBER
{
NUMBER100=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_identifier1877); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NUMBER.add(NUMBER100);
// AST REWRITE
// elements: NUMBER, identifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 328:13: -> $identifier NUMBER
{
adaptor.addChild(root_0, stream_retval.nextTree());
adaptor.addChild(root_0, stream_NUMBER.nextNode());
}
retval.tree = root_0;
}
}
break;
case 5 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:329:5: STAR
{
STAR101=(Token)match(input,STAR,FOLLOW_STAR_in_identifier1891); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR101);
// AST REWRITE
// elements: identifier, STAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 329:10: -> $identifier ^( QANYTHING STAR )
{
adaptor.addChild(root_0, stream_retval.nextTree());
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:329:25: ^( QANYTHING STAR )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QANYTHING, "QANYTHING"), root_1);
adaptor.addChild(root_1, stream_STAR.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "identifier"
public static class coordinate_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "coordinate"
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:333:1: coordinate : ( HOUR | H_NUMBER M_NUMBER ( PLUS | MINUS ) D_NUMBER M_NUMBER | H_NUMBER NUMBER ( PLUS | MINUS ) D_NUMBER NUMBER | D_NUMBER M_NUMBER S_NUMBER ( PLUS | MINUS ) D_NUMBER M_NUMBER S_NUMBER | H_NUMBER ( PLUS | MINUS ) D_NUMBER | '<=>' );
public final ADSParser.coordinate_return coordinate() throws RecognitionException {
ADSParser.coordinate_return retval = new ADSParser.coordinate_return();
retval.start = input.LT(1);
Object root_0 = null;
Token HOUR102=null;
Token H_NUMBER103=null;
Token M_NUMBER104=null;
Token set105=null;
Token D_NUMBER106=null;
Token M_NUMBER107=null;
Token H_NUMBER108=null;
Token NUMBER109=null;
Token set110=null;
Token D_NUMBER111=null;
Token NUMBER112=null;
Token D_NUMBER113=null;
Token M_NUMBER114=null;
Token S_NUMBER115=null;
Token set116=null;
Token D_NUMBER117=null;
Token M_NUMBER118=null;
Token S_NUMBER119=null;
Token H_NUMBER120=null;
Token set121=null;
Token D_NUMBER122=null;
Token string_literal123=null;
Object HOUR102_tree=null;
Object H_NUMBER103_tree=null;
Object M_NUMBER104_tree=null;
Object set105_tree=null;
Object D_NUMBER106_tree=null;
Object M_NUMBER107_tree=null;
Object H_NUMBER108_tree=null;
Object NUMBER109_tree=null;
Object set110_tree=null;
Object D_NUMBER111_tree=null;
Object NUMBER112_tree=null;
Object D_NUMBER113_tree=null;
Object M_NUMBER114_tree=null;
Object S_NUMBER115_tree=null;
Object set116_tree=null;
Object D_NUMBER117_tree=null;
Object M_NUMBER118_tree=null;
Object S_NUMBER119_tree=null;
Object H_NUMBER120_tree=null;
Object set121_tree=null;
Object D_NUMBER122_tree=null;
Object string_literal123_tree=null;
try {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:334:3: ( HOUR | H_NUMBER M_NUMBER ( PLUS | MINUS ) D_NUMBER M_NUMBER | H_NUMBER NUMBER ( PLUS | MINUS ) D_NUMBER NUMBER | D_NUMBER M_NUMBER S_NUMBER ( PLUS | MINUS ) D_NUMBER M_NUMBER S_NUMBER | H_NUMBER ( PLUS | MINUS ) D_NUMBER | '<=>' )
int alt39=6;
switch ( input.LA(1) ) {
case HOUR:
{
alt39=1;
}
break;
case H_NUMBER:
{
switch ( input.LA(2) ) {
case M_NUMBER:
{
alt39=2;
}
break;
case NUMBER:
{
alt39=3;
}
break;
case MINUS:
case PLUS:
{
alt39=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 39, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case D_NUMBER:
{
alt39=4;
}
break;
case 71:
{
alt39=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 39, 0, input);
throw nvae;
}
switch (alt39) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:338:3: HOUR
{
root_0 = (Object)adaptor.nil();
HOUR102=(Token)match(input,HOUR,FOLLOW_HOUR_in_coordinate1932); if (state.failed) return retval;
if ( state.backtracking==0 ) {
HOUR102_tree = (Object)adaptor.create(HOUR102);
adaptor.addChild(root_0, HOUR102_tree);
}
}
break;
case 2 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:340:3: H_NUMBER M_NUMBER ( PLUS | MINUS ) D_NUMBER M_NUMBER
{
root_0 = (Object)adaptor.nil();
H_NUMBER103=(Token)match(input,H_NUMBER,FOLLOW_H_NUMBER_in_coordinate1941); if (state.failed) return retval;
if ( state.backtracking==0 ) {
H_NUMBER103_tree = (Object)adaptor.create(H_NUMBER103);
adaptor.addChild(root_0, H_NUMBER103_tree);
}
M_NUMBER104=(Token)match(input,M_NUMBER,FOLLOW_M_NUMBER_in_coordinate1943); if (state.failed) return retval;
if ( state.backtracking==0 ) {
M_NUMBER104_tree = (Object)adaptor.create(M_NUMBER104);
adaptor.addChild(root_0, M_NUMBER104_tree);
}
set105=input.LT(1);
if ( input.LA(1)==MINUS||input.LA(1)==PLUS ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set105));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
D_NUMBER106=(Token)match(input,D_NUMBER,FOLLOW_D_NUMBER_in_coordinate1951); if (state.failed) return retval;
if ( state.backtracking==0 ) {
D_NUMBER106_tree = (Object)adaptor.create(D_NUMBER106);
adaptor.addChild(root_0, D_NUMBER106_tree);
}
M_NUMBER107=(Token)match(input,M_NUMBER,FOLLOW_M_NUMBER_in_coordinate1953); if (state.failed) return retval;
if ( state.backtracking==0 ) {
M_NUMBER107_tree = (Object)adaptor.create(M_NUMBER107);
adaptor.addChild(root_0, M_NUMBER107_tree);
}
}
break;
case 3 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:342:3: H_NUMBER NUMBER ( PLUS | MINUS ) D_NUMBER NUMBER
{
root_0 = (Object)adaptor.nil();
H_NUMBER108=(Token)match(input,H_NUMBER,FOLLOW_H_NUMBER_in_coordinate1962); if (state.failed) return retval;
if ( state.backtracking==0 ) {
H_NUMBER108_tree = (Object)adaptor.create(H_NUMBER108);
adaptor.addChild(root_0, H_NUMBER108_tree);
}
NUMBER109=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_coordinate1964); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NUMBER109_tree = (Object)adaptor.create(NUMBER109);
adaptor.addChild(root_0, NUMBER109_tree);
}
set110=input.LT(1);
if ( input.LA(1)==MINUS||input.LA(1)==PLUS ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set110));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
D_NUMBER111=(Token)match(input,D_NUMBER,FOLLOW_D_NUMBER_in_coordinate1972); if (state.failed) return retval;
if ( state.backtracking==0 ) {
D_NUMBER111_tree = (Object)adaptor.create(D_NUMBER111);
adaptor.addChild(root_0, D_NUMBER111_tree);
}
NUMBER112=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_coordinate1974); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NUMBER112_tree = (Object)adaptor.create(NUMBER112);
adaptor.addChild(root_0, NUMBER112_tree);
}
}
break;
case 4 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:344:3: D_NUMBER M_NUMBER S_NUMBER ( PLUS | MINUS ) D_NUMBER M_NUMBER S_NUMBER
{
root_0 = (Object)adaptor.nil();
D_NUMBER113=(Token)match(input,D_NUMBER,FOLLOW_D_NUMBER_in_coordinate1983); if (state.failed) return retval;
if ( state.backtracking==0 ) {
D_NUMBER113_tree = (Object)adaptor.create(D_NUMBER113);
adaptor.addChild(root_0, D_NUMBER113_tree);
}
M_NUMBER114=(Token)match(input,M_NUMBER,FOLLOW_M_NUMBER_in_coordinate1985); if (state.failed) return retval;
if ( state.backtracking==0 ) {
M_NUMBER114_tree = (Object)adaptor.create(M_NUMBER114);
adaptor.addChild(root_0, M_NUMBER114_tree);
}
S_NUMBER115=(Token)match(input,S_NUMBER,FOLLOW_S_NUMBER_in_coordinate1987); if (state.failed) return retval;
if ( state.backtracking==0 ) {
S_NUMBER115_tree = (Object)adaptor.create(S_NUMBER115);
adaptor.addChild(root_0, S_NUMBER115_tree);
}
set116=input.LT(1);
if ( input.LA(1)==MINUS||input.LA(1)==PLUS ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set116));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
D_NUMBER117=(Token)match(input,D_NUMBER,FOLLOW_D_NUMBER_in_coordinate1995); if (state.failed) return retval;
if ( state.backtracking==0 ) {
D_NUMBER117_tree = (Object)adaptor.create(D_NUMBER117);
adaptor.addChild(root_0, D_NUMBER117_tree);
}
M_NUMBER118=(Token)match(input,M_NUMBER,FOLLOW_M_NUMBER_in_coordinate1997); if (state.failed) return retval;
if ( state.backtracking==0 ) {
M_NUMBER118_tree = (Object)adaptor.create(M_NUMBER118);
adaptor.addChild(root_0, M_NUMBER118_tree);
}
S_NUMBER119=(Token)match(input,S_NUMBER,FOLLOW_S_NUMBER_in_coordinate1999); if (state.failed) return retval;
if ( state.backtracking==0 ) {
S_NUMBER119_tree = (Object)adaptor.create(S_NUMBER119);
adaptor.addChild(root_0, S_NUMBER119_tree);
}
}
break;
case 5 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:346:3: H_NUMBER ( PLUS | MINUS ) D_NUMBER
{
root_0 = (Object)adaptor.nil();
H_NUMBER120=(Token)match(input,H_NUMBER,FOLLOW_H_NUMBER_in_coordinate2008); if (state.failed) return retval;
if ( state.backtracking==0 ) {
H_NUMBER120_tree = (Object)adaptor.create(H_NUMBER120);
adaptor.addChild(root_0, H_NUMBER120_tree);
}
set121=input.LT(1);
if ( input.LA(1)==MINUS||input.LA(1)==PLUS ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set121));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
D_NUMBER122=(Token)match(input,D_NUMBER,FOLLOW_D_NUMBER_in_coordinate2016); if (state.failed) return retval;
if ( state.backtracking==0 ) {
D_NUMBER122_tree = (Object)adaptor.create(D_NUMBER122);
adaptor.addChild(root_0, D_NUMBER122_tree);
}
}
break;
case 6 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:348:3: '<=>'
{
root_0 = (Object)adaptor.nil();
string_literal123=(Token)match(input,71,FOLLOW_71_in_coordinate2025); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal123_tree = (Object)adaptor.create(string_literal123);
adaptor.addChild(root_0, string_literal123_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "coordinate"
// $ANTLR start synpred1_ADS
public final void synpred1_ADS_fragment() throws RecognitionException {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:4: ( ( lmodifier )? func_name )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:5: ( lmodifier )? func_name
{
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:5: ( lmodifier )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==MINUS||LA40_0==PLUS||LA40_0==70||LA40_0==72) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:67:5: lmodifier
{
pushFollow(FOLLOW_lmodifier_in_synpred1_ADS399);
lmodifier();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_func_name_in_synpred1_ADS402);
func_name();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred1_ADS
// $ANTLR start synpred2_ADS
public final void synpred2_ADS_fragment() throws RecognitionException {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:5: ( lmodifier LPAREN ( clauseOr )+ RPAREN )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:6: lmodifier LPAREN ( clauseOr )+ RPAREN
{
pushFollow(FOLLOW_lmodifier_in_synpred2_ADS465);
lmodifier();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred2_ADS467); if (state.failed) return;
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:23: ( clauseOr )+
int cnt41=0;
loop41:
while (true) {
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==AUTHOR_SEARCH||(LA41_0 >= COMMA && LA41_0 <= DATE_RANGE)||LA41_0==D_NUMBER||LA41_0==FUNC_NAME||(LA41_0 >= HOUR && LA41_0 <= H_NUMBER)||(LA41_0 >= LBRACK && LA41_0 <= MINUS)||LA41_0==NUMBER||(LA41_0 >= PHRASE && LA41_0 <= PLUS)||LA41_0==QMARK||LA41_0==REGEX||(LA41_0 >= SEMICOLON && LA41_0 <= STAR)||LA41_0==TERM_NORMAL||LA41_0==TERM_TRUNCATED||LA41_0==TO||(LA41_0 >= 70 && LA41_0 <= 75)) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:69:23: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_synpred2_ADS469);
clauseOr();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt41 >= 1 ) break loop41;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(41, input);
throw eee;
}
cnt41++;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred2_ADS472); if (state.failed) return;
}
}
// $ANTLR end synpred2_ADS
// $ANTLR start synpred3_ADS
public final void synpred3_ADS_fragment() throws RecognitionException {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:5: ( LPAREN ( clauseOr )+ RPAREN rmodifier )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:6: LPAREN ( clauseOr )+ RPAREN rmodifier
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred3_ADS528); if (state.failed) return;
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:13: ( clauseOr )+
int cnt42=0;
loop42:
while (true) {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==AUTHOR_SEARCH||(LA42_0 >= COMMA && LA42_0 <= DATE_RANGE)||LA42_0==D_NUMBER||LA42_0==FUNC_NAME||(LA42_0 >= HOUR && LA42_0 <= H_NUMBER)||(LA42_0 >= LBRACK && LA42_0 <= MINUS)||LA42_0==NUMBER||(LA42_0 >= PHRASE && LA42_0 <= PLUS)||LA42_0==QMARK||LA42_0==REGEX||(LA42_0 >= SEMICOLON && LA42_0 <= STAR)||LA42_0==TERM_NORMAL||LA42_0==TERM_TRUNCATED||LA42_0==TO||(LA42_0 >= 70 && LA42_0 <= 75)) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:71:13: clauseOr
{
pushFollow(FOLLOW_clauseOr_in_synpred3_ADS530);
clauseOr();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt42 >= 1 ) break loop42;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(42, input);
throw eee;
}
cnt42++;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred3_ADS533); if (state.failed) return;
pushFollow(FOLLOW_rmodifier_in_synpred3_ADS535);
rmodifier();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred3_ADS
// $ANTLR start synpred4_ADS
public final void synpred4_ADS_fragment() throws RecognitionException {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:73:5: ( LPAREN )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:73:6: LPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred4_ADS590); if (state.failed) return;
}
}
// $ANTLR end synpred4_ADS
// $ANTLR start synpred5_ADS
public final void synpred5_ADS_fragment() throws RecognitionException {
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:289:3: ( AND NOT )
// /dvt/workspace2/montysolr/contrib/adsabs/grammars/ADS.g:289:4: AND NOT
{
match(input,AND,FOLLOW_AND_in_synpred5_ADS1648); if (state.failed) return;
match(input,NOT,FOLLOW_NOT_in_synpred5_ADS1650); if (state.failed) return;
}
}
// $ANTLR end synpred5_ADS
// Delegated rules
public final boolean synpred4_ADS() {
state.backtracking++;
int start = input.mark();
try {
synpred4_ADS_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred3_ADS() {
state.backtracking++;
int start = input.mark();
try {
synpred3_ADS_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred5_ADS() {
state.backtracking++;
int start = input.mark();
try {
synpred5_ADS_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred1_ADS() {
state.backtracking++;
int start = input.mark();
try {
synpred1_ADS_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred2_ADS() {
state.backtracking++;
int start = input.mark();
try {
synpred2_ADS_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public static final BitSet FOLLOW_clauseOr_in_mainQ188 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_EOF_in_mainQ191 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_clauseAnd_in_clauseOr224 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_or_in_clauseOr233 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseAnd_in_clauseOr237 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_clauseNot_in_clauseAnd266 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_and_in_clauseAnd276 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseNot_in_clauseAnd280 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_clauseNear_in_clauseNot309 = new BitSet(new long[]{0x0000000200000012L});
public static final BitSet FOLLOW_not_in_clauseNot318 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseNear_in_clauseNot322 = new BitSet(new long[]{0x0000000200000012L});
public static final BitSet FOLLOW_clauseBasic_in_clauseNear353 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_near_in_clauseNear362 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseBasic_in_clauseNear366 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_lmodifier_in_clauseBasic407 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_func_name_in_clauseBasic410 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseOr_in_clauseBasic412 = new BitSet(new long[]{0x4F0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_RPAREN_in_clauseBasic416 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000002L});
public static final BitSet FOLLOW_rmodifier_in_clauseBasic418 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lmodifier_in_clauseBasic477 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_LPAREN_in_clauseBasic480 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseOr_in_clauseBasic482 = new BitSet(new long[]{0x4F0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_RPAREN_in_clauseBasic485 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000002L});
public static final BitSet FOLLOW_rmodifier_in_clauseBasic487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lmodifier_in_clauseBasic539 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_LPAREN_in_clauseBasic542 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseOr_in_clauseBasic544 = new BitSet(new long[]{0x4F0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_RPAREN_in_clauseBasic547 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000002L});
public static final BitSet FOLLOW_rmodifier_in_clauseBasic549 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_clauseBasic595 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseOr_in_clauseBasic597 = new BitSet(new long[]{0x4F0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_RPAREN_in_clauseBasic600 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atom_in_clauseBasic624 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lmodifier_in_atom648 = new BitSet(new long[]{0x4000000000000000L});
public static final BitSet FOLLOW_field_in_atom651 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_multi_value_in_atom653 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000002L});
public static final BitSet FOLLOW_rmodifier_in_atom655 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lmodifier_in_atom689 = new BitSet(new long[]{0x4D0040640D813080L,0x0000000000000E89L});
public static final BitSet FOLLOW_field_in_atom692 = new BitSet(new long[]{0x4D0040640D813080L,0x0000000000000E89L});
public static final BitSet FOLLOW_value_in_atom695 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000002L});
public static final BitSet FOLLOW_rmodifier_in_atom697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TERM_NORMAL_in_field756 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_field758 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACK_in_range_term_in802 = new BitSet(new long[]{0x4800006400004000L,0x0000000000000009L});
public static final BitSet FOLLOW_range_value_in_range_term_in814 = new BitSet(new long[]{0x4880006400004000L,0x0000000000000009L});
public static final BitSet FOLLOW_TO_in_range_term_in837 = new BitSet(new long[]{0x4800006400004000L,0x0000000000000009L});
public static final BitSet FOLLOW_range_value_in_range_term_in843 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_RBRACK_in_range_term_in864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REGEX_in_value883 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_range_term_in_in_value897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_value912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_coordinate_in_value926 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_normal_in_value940 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_truncated_in_value955 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quoted_in_value971 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quoted_truncated_in_value985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DATE_RANGE_in_value999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AUTHOR_SEARCH_in_value1013 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QMARK_in_value1027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_match_all_in_value1041 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_value1055 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LOCAL_PARAMS_in_value1069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_value1084 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_value1098 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_truncated_in_range_value1129 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quoted_in_range_value1143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quoted_truncated_in_range_value1157 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_date_in_range_value1171 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_normal_in_range_value1185 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_range_value1200 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNC_NAME_in_func_name1224 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_multi_value1242 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_multiClause_in_multi_value1244 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_RPAREN_in_multi_value1246 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_clauseOr_in_multiClause1284 = new BitSet(new long[]{0x4D0040E43D913082L,0x0000000000000FC9L});
public static final BitSet FOLLOW_STAR_in_match_all1346 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_COLON_in_match_all1348 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_STAR_in_match_all1350 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TERM_TRUNCATED_in_truncated1406 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PHRASE_ANYTHING_in_quoted_truncated1424 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PHRASE_in_quoted1439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_lmodifier1453 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_lmodifier1464 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_72_in_lmodifier1475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_70_in_lmodifier1486 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TILDE_in_rmodifier1507 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_CARAT_in_rmodifier1509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CARAT_in_rmodifier1532 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
public static final BitSet FOLLOW_TILDE_in_rmodifier1534 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CARAT_in_boost1565 = new BitSet(new long[]{0x0000000400000002L});
public static final BitSet FOLLOW_NUMBER_in_boost1581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TILDE_in_fuzzy1606 = new BitSet(new long[]{0x0000000400000002L});
public static final BitSet FOLLOW_NUMBER_in_fuzzy1622 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_not1654 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_NOT_in_not1656 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_not1662 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_and1680 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_or1697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEAR_in_near1716 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_comma1739 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_SEMICOLON_in_semicolon1756 = new BitSet(new long[]{0x0400000000000002L});
public static final BitSet FOLLOW_DATE_TOKEN_in_date1775 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_75_in_identifier1797 = new BitSet(new long[]{0x4800006400000000L});
public static final BitSet FOLLOW_74_in_identifier1807 = new BitSet(new long[]{0x4800006400000000L});
public static final BitSet FOLLOW_73_in_identifier1817 = new BitSet(new long[]{0x4800006400000000L});
public static final BitSet FOLLOW_TERM_NORMAL_in_identifier1829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PHRASE_ANYTHING_in_identifier1842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PHRASE_in_identifier1860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NUMBER_in_identifier1877 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_identifier1891 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HOUR_in_coordinate1932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_H_NUMBER_in_coordinate1941 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_M_NUMBER_in_coordinate1943 = new BitSet(new long[]{0x0000008020000000L});
public static final BitSet FOLLOW_set_in_coordinate1945 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_D_NUMBER_in_coordinate1951 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_M_NUMBER_in_coordinate1953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_H_NUMBER_in_coordinate1962 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_NUMBER_in_coordinate1964 = new BitSet(new long[]{0x0000008020000000L});
public static final BitSet FOLLOW_set_in_coordinate1966 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_D_NUMBER_in_coordinate1972 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_NUMBER_in_coordinate1974 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_D_NUMBER_in_coordinate1983 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_M_NUMBER_in_coordinate1985 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_S_NUMBER_in_coordinate1987 = new BitSet(new long[]{0x0000008020000000L});
public static final BitSet FOLLOW_set_in_coordinate1989 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_D_NUMBER_in_coordinate1995 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_M_NUMBER_in_coordinate1997 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_S_NUMBER_in_coordinate1999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_H_NUMBER_in_coordinate2008 = new BitSet(new long[]{0x0000008020000000L});
public static final BitSet FOLLOW_set_in_coordinate2010 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_D_NUMBER_in_coordinate2016 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_71_in_coordinate2025 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lmodifier_in_synpred1_ADS399 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_func_name_in_synpred1_ADS402 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lmodifier_in_synpred2_ADS465 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred2_ADS467 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseOr_in_synpred2_ADS469 = new BitSet(new long[]{0x4F0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_RPAREN_in_synpred2_ADS472 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred3_ADS528 = new BitSet(new long[]{0x4D0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_clauseOr_in_synpred3_ADS530 = new BitSet(new long[]{0x4F0040E43D913080L,0x0000000000000FC9L});
public static final BitSet FOLLOW_RPAREN_in_synpred3_ADS533 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000002L});
public static final BitSet FOLLOW_rmodifier_in_synpred3_ADS535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred4_ADS590 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_synpred5_ADS1648 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_NOT_in_synpred5_ADS1650 = new BitSet(new long[]{0x0000000000000002L});
}