// $ANTLR 3.2 Sep 23, 2009 14:05:07 com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g 2010-10-26 20:48:59
package com.lowereast.guiceymongo.data.generator.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.*;
public class GuiceyDataParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "DATA", "TYPE_MAP", "TYPE_SET", "TYPE_LIST", "PARAMETERIZED_TYPE", "TYPE_PRIMITIVE", "PROPERTY", "OPTION", "COMMENT", "PAIR", "ENUM", "ID", "INT", "FLOAT", "STRING", "TYPE", "WS", "EXPONENT", "ESC_SEQ", "HEX_DIGIT", "UNICODE_ESC", "OCTAL_ESC", "'{'", "'}'", "'{}'", "','", "'/*'", "'*/'", "'['", "']'", "'('", "')]'", "'='", "'data;'", "';'", "'map<'", "'>'", "'set<'", "'list<'", "'<'"
};
public static final int EXPONENT=21;
public static final int T__29=29;
public static final int OPTION=11;
public static final int T__28=28;
public static final int T__27=27;
public static final int T__26=26;
public static final int OCTAL_ESC=25;
public static final int FLOAT=17;
public static final int TYPE_LIST=7;
public static final int ID=15;
public static final int EOF=-1;
public static final int TYPE_PRIMITIVE=9;
public static final int TYPE=19;
public static final int ESC_SEQ=22;
public static final int TYPE_MAP=5;
public static final int PAIR=13;
public static final int COMMENT=12;
public static final int T__42=42;
public static final int T__43=43;
public static final int T__40=40;
public static final int T__41=41;
public static final int UNICODE_ESC=24;
public static final int HEX_DIGIT=23;
public static final int INT=16;
public static final int T__30=30;
public static final int T__31=31;
public static final int T__32=32;
public static final int PARAMETERIZED_TYPE=8;
public static final int T__33=33;
public static final int WS=20;
public static final int T__34=34;
public static final int ENUM=14;
public static final int T__35=35;
public static final int T__36=36;
public static final int T__37=37;
public static final int PROPERTY=10;
public static final int T__38=38;
public static final int T__39=39;
public static final int TYPE_SET=6;
public static final int DATA=4;
public static final int STRING=18;
// delegates
// delegators
public GuiceyDataParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public GuiceyDataParser(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;
}
public String[] getTokenNames() { return GuiceyDataParser.tokenNames; }
public String getGrammarFileName() { return "com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g"; }
public static class start_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "start"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:31:1: start : ( entry )+ EOF ;
public final GuiceyDataParser.start_return start() throws RecognitionException {
GuiceyDataParser.start_return retval = new GuiceyDataParser.start_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF2=null;
GuiceyDataParser.entry_return entry1 = null;
Object EOF2_tree=null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:32:2: ( ( entry )+ EOF )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:32:4: ( entry )+ EOF
{
root_0 = (Object)adaptor.nil();
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:32:4: ( entry )+
int cnt1=0;
loop1:
do {
int alt1=2;
switch ( input.LA(1) ) {
case DATA:
case ENUM:
case 30:
{
alt1=1;
}
break;
}
switch (alt1) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: entry
{
pushFollow(FOLLOW_entry_in_start121);
entry1=entry();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, entry1.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++;
} while (true);
EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_start124); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EOF2_tree = (Object)adaptor.create(EOF2);
adaptor.addChild(root_0, EOF2_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 {
}
return retval;
}
// $ANTLR end "start"
public static class entry_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "entry"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:35:1: entry : ( data | enumeration );
public final GuiceyDataParser.entry_return entry() throws RecognitionException {
GuiceyDataParser.entry_return retval = new GuiceyDataParser.entry_return();
retval.start = input.LT(1);
Object root_0 = null;
GuiceyDataParser.data_return data3 = null;
GuiceyDataParser.enumeration_return enumeration4 = null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:36:2: ( data | enumeration )
int alt2=2;
alt2 = dfa2.predict(input);
switch (alt2) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:36:4: data
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_data_in_entry135);
data3=data();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, data3.getTree());
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:37:4: enumeration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumeration_in_entry140);
enumeration4=enumeration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumeration4.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 {
}
return retval;
}
// $ANTLR end "entry"
public static class data_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "data"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:40:1: data : ( ( javadoc )? DATA ID '{' ( data_entry )* '}' -> ^( DATA ID ( javadoc )? ( data_entry )* ) | ( javadoc )? DATA ID '{}' -> ^( DATA ID ( javadoc )? ) );
public final GuiceyDataParser.data_return data() throws RecognitionException {
GuiceyDataParser.data_return retval = new GuiceyDataParser.data_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DATA6=null;
Token ID7=null;
Token char_literal8=null;
Token char_literal10=null;
Token DATA12=null;
Token ID13=null;
Token string_literal14=null;
GuiceyDataParser.javadoc_return javadoc5 = null;
GuiceyDataParser.data_entry_return data_entry9 = null;
GuiceyDataParser.javadoc_return javadoc11 = null;
Object DATA6_tree=null;
Object ID7_tree=null;
Object char_literal8_tree=null;
Object char_literal10_tree=null;
Object DATA12_tree=null;
Object ID13_tree=null;
Object string_literal14_tree=null;
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_DATA=new RewriteRuleTokenStream(adaptor,"token DATA");
RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26");
RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27");
RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28");
RewriteRuleSubtreeStream stream_data_entry=new RewriteRuleSubtreeStream(adaptor,"rule data_entry");
RewriteRuleSubtreeStream stream_javadoc=new RewriteRuleSubtreeStream(adaptor,"rule javadoc");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:2: ( ( javadoc )? DATA ID '{' ( data_entry )* '}' -> ^( DATA ID ( javadoc )? ( data_entry )* ) | ( javadoc )? DATA ID '{}' -> ^( DATA ID ( javadoc )? ) )
int alt6=2;
alt6 = dfa6.predict(input);
switch (alt6) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:4: ( javadoc )? DATA ID '{' ( data_entry )* '}'
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:4: ( javadoc )?
int alt3=2;
switch ( input.LA(1) ) {
case 30:
{
alt3=1;
}
break;
}
switch (alt3) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: javadoc
{
pushFollow(FOLLOW_javadoc_in_data151);
javadoc5=javadoc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_javadoc.add(javadoc5.getTree());
}
break;
}
DATA6=(Token)match(input,DATA,FOLLOW_DATA_in_data154); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DATA.add(DATA6);
ID7=(Token)match(input,ID,FOLLOW_ID_in_data156); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID7);
char_literal8=(Token)match(input,26,FOLLOW_26_in_data158); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_26.add(char_literal8);
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:25: ( data_entry )*
loop4:
do {
int alt4=2;
switch ( input.LA(1) ) {
case DATA:
case ENUM:
case ID:
case TYPE:
case 30:
case 32:
case 39:
case 41:
case 42:
{
alt4=1;
}
break;
}
switch (alt4) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: data_entry
{
pushFollow(FOLLOW_data_entry_in_data160);
data_entry9=data_entry();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_data_entry.add(data_entry9.getTree());
}
break;
default :
break loop4;
}
} while (true);
char_literal10=(Token)match(input,27,FOLLOW_27_in_data163); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_27.add(char_literal10);
// AST REWRITE
// elements: ID, data_entry, DATA, javadoc
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 41:41: -> ^( DATA ID ( javadoc )? ( data_entry )* )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:44: ^( DATA ID ( javadoc )? ( data_entry )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DATA.nextNode(), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:54: ( javadoc )?
if ( stream_javadoc.hasNext() ) {
adaptor.addChild(root_1, stream_javadoc.nextTree());
}
stream_javadoc.reset();
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:41:63: ( data_entry )*
while ( stream_data_entry.hasNext() ) {
adaptor.addChild(root_1, stream_data_entry.nextTree());
}
stream_data_entry.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:42:4: ( javadoc )? DATA ID '{}'
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:42:4: ( javadoc )?
int alt5=2;
switch ( input.LA(1) ) {
case 30:
{
alt5=1;
}
break;
}
switch (alt5) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: javadoc
{
pushFollow(FOLLOW_javadoc_in_data182);
javadoc11=javadoc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_javadoc.add(javadoc11.getTree());
}
break;
}
DATA12=(Token)match(input,DATA,FOLLOW_DATA_in_data185); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DATA.add(DATA12);
ID13=(Token)match(input,ID,FOLLOW_ID_in_data187); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID13);
string_literal14=(Token)match(input,28,FOLLOW_28_in_data189); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_28.add(string_literal14);
// AST REWRITE
// elements: javadoc, ID, DATA
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 42:26: -> ^( DATA ID ( javadoc )? )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:42:29: ^( DATA ID ( javadoc )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DATA.nextNode(), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:42:39: ( javadoc )?
if ( stream_javadoc.hasNext() ) {
adaptor.addChild(root_1, stream_javadoc.nextTree());
}
stream_javadoc.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 {
}
return retval;
}
// $ANTLR end "data"
public static class enumeration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "enumeration"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:45:1: enumeration : ( ( javadoc )? ENUM ID '{}' -> ^( ENUM ID ( javadoc )? ) | ( javadoc )? ENUM ID '{' ( ID ',' )* ID '}' -> ^( ENUM ( ID )+ ( javadoc )? ) );
public final GuiceyDataParser.enumeration_return enumeration() throws RecognitionException {
GuiceyDataParser.enumeration_return retval = new GuiceyDataParser.enumeration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ENUM16=null;
Token ID17=null;
Token string_literal18=null;
Token ENUM20=null;
Token ID21=null;
Token char_literal22=null;
Token ID23=null;
Token char_literal24=null;
Token ID25=null;
Token char_literal26=null;
GuiceyDataParser.javadoc_return javadoc15 = null;
GuiceyDataParser.javadoc_return javadoc19 = null;
Object ENUM16_tree=null;
Object ID17_tree=null;
Object string_literal18_tree=null;
Object ENUM20_tree=null;
Object ID21_tree=null;
Object char_literal22_tree=null;
Object ID23_tree=null;
Object char_literal24_tree=null;
Object ID25_tree=null;
Object char_literal26_tree=null;
RewriteRuleTokenStream stream_ENUM=new RewriteRuleTokenStream(adaptor,"token ENUM");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26");
RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27");
RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28");
RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29");
RewriteRuleSubtreeStream stream_javadoc=new RewriteRuleSubtreeStream(adaptor,"rule javadoc");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:46:2: ( ( javadoc )? ENUM ID '{}' -> ^( ENUM ID ( javadoc )? ) | ( javadoc )? ENUM ID '{' ( ID ',' )* ID '}' -> ^( ENUM ( ID )+ ( javadoc )? ) )
int alt10=2;
alt10 = dfa10.predict(input);
switch (alt10) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:46:4: ( javadoc )? ENUM ID '{}'
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:46:4: ( javadoc )?
int alt7=2;
switch ( input.LA(1) ) {
case 30:
{
alt7=1;
}
break;
}
switch (alt7) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: javadoc
{
pushFollow(FOLLOW_javadoc_in_enumeration211);
javadoc15=javadoc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_javadoc.add(javadoc15.getTree());
}
break;
}
ENUM16=(Token)match(input,ENUM,FOLLOW_ENUM_in_enumeration214); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENUM.add(ENUM16);
ID17=(Token)match(input,ID,FOLLOW_ID_in_enumeration216); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID17);
string_literal18=(Token)match(input,28,FOLLOW_28_in_enumeration218); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_28.add(string_literal18);
// AST REWRITE
// elements: javadoc, ID, ENUM
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 46:26: -> ^( ENUM ID ( javadoc )? )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:46:29: ^( ENUM ID ( javadoc )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ENUM.nextNode(), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:46:39: ( javadoc )?
if ( stream_javadoc.hasNext() ) {
adaptor.addChild(root_1, stream_javadoc.nextTree());
}
stream_javadoc.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:47:4: ( javadoc )? ENUM ID '{' ( ID ',' )* ID '}'
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:47:4: ( javadoc )?
int alt8=2;
switch ( input.LA(1) ) {
case 30:
{
alt8=1;
}
break;
}
switch (alt8) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: javadoc
{
pushFollow(FOLLOW_javadoc_in_enumeration234);
javadoc19=javadoc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_javadoc.add(javadoc19.getTree());
}
break;
}
ENUM20=(Token)match(input,ENUM,FOLLOW_ENUM_in_enumeration237); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENUM.add(ENUM20);
ID21=(Token)match(input,ID,FOLLOW_ID_in_enumeration239); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID21);
char_literal22=(Token)match(input,26,FOLLOW_26_in_enumeration241); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_26.add(char_literal22);
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:47:25: ( ID ',' )*
loop9:
do {
int alt9=2;
switch ( input.LA(1) ) {
case ID:
{
switch ( input.LA(2) ) {
case 29:
{
alt9=1;
}
break;
}
}
break;
}
switch (alt9) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:47:26: ID ','
{
ID23=(Token)match(input,ID,FOLLOW_ID_in_enumeration244); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID23);
char_literal24=(Token)match(input,29,FOLLOW_29_in_enumeration246); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_29.add(char_literal24);
}
break;
default :
break loop9;
}
} while (true);
ID25=(Token)match(input,ID,FOLLOW_ID_in_enumeration250); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID25);
char_literal26=(Token)match(input,27,FOLLOW_27_in_enumeration252); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_27.add(char_literal26);
// AST REWRITE
// elements: ID, javadoc, ENUM
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 47:42: -> ^( ENUM ( ID )+ ( javadoc )? )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:47:45: ^( ENUM ( ID )+ ( javadoc )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ENUM.nextNode(), root_1);
if ( !(stream_ID.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_ID.hasNext() ) {
adaptor.addChild(root_1, stream_ID.nextNode());
}
stream_ID.reset();
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:47:56: ( javadoc )?
if ( stream_javadoc.hasNext() ) {
adaptor.addChild(root_1, stream_javadoc.nextTree());
}
stream_javadoc.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 {
}
return retval;
}
// $ANTLR end "enumeration"
public static class data_entry_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "data_entry"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:50:1: data_entry : ( entry | ( javadoc )? ( option )* property -> ^( property ( javadoc )? ( option )* ) );
public final GuiceyDataParser.data_entry_return data_entry() throws RecognitionException {
GuiceyDataParser.data_entry_return retval = new GuiceyDataParser.data_entry_return();
retval.start = input.LT(1);
Object root_0 = null;
GuiceyDataParser.entry_return entry27 = null;
GuiceyDataParser.javadoc_return javadoc28 = null;
GuiceyDataParser.option_return option29 = null;
GuiceyDataParser.property_return property30 = null;
RewriteRuleSubtreeStream stream_javadoc=new RewriteRuleSubtreeStream(adaptor,"rule javadoc");
RewriteRuleSubtreeStream stream_property=new RewriteRuleSubtreeStream(adaptor,"rule property");
RewriteRuleSubtreeStream stream_option=new RewriteRuleSubtreeStream(adaptor,"rule option");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:51:2: ( entry | ( javadoc )? ( option )* property -> ^( property ( javadoc )? ( option )* ) )
int alt13=2;
alt13 = dfa13.predict(input);
switch (alt13) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:51:4: entry
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_entry_in_data_entry275);
entry27=entry();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, entry27.getTree());
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:52:4: ( javadoc )? ( option )* property
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:52:4: ( javadoc )?
int alt11=2;
switch ( input.LA(1) ) {
case 30:
{
alt11=1;
}
break;
}
switch (alt11) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: javadoc
{
pushFollow(FOLLOW_javadoc_in_data_entry280);
javadoc28=javadoc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_javadoc.add(javadoc28.getTree());
}
break;
}
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:52:13: ( option )*
loop12:
do {
int alt12=2;
switch ( input.LA(1) ) {
case 32:
{
alt12=1;
}
break;
}
switch (alt12) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: option
{
pushFollow(FOLLOW_option_in_data_entry283);
option29=option();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_option.add(option29.getTree());
}
break;
default :
break loop12;
}
} while (true);
pushFollow(FOLLOW_property_in_data_entry286);
property30=property();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_property.add(property30.getTree());
// AST REWRITE
// elements: option, javadoc, property
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 52:30: -> ^( property ( javadoc )? ( option )* )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:52:33: ^( property ( javadoc )? ( option )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_property.nextNode(), root_1);
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:52:44: ( javadoc )?
if ( stream_javadoc.hasNext() ) {
adaptor.addChild(root_1, stream_javadoc.nextTree());
}
stream_javadoc.reset();
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:52:53: ( option )*
while ( stream_option.hasNext() ) {
adaptor.addChild(root_1, stream_option.nextTree());
}
stream_option.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 {
}
return retval;
}
// $ANTLR end "data_entry"
public static class javadoc_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "javadoc"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:55:1: javadoc : '/*' comment '*/' -> ^( COMMENT comment ) ;
public final GuiceyDataParser.javadoc_return javadoc() throws RecognitionException {
GuiceyDataParser.javadoc_return retval = new GuiceyDataParser.javadoc_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal31=null;
Token string_literal33=null;
GuiceyDataParser.comment_return comment32 = null;
Object string_literal31_tree=null;
Object string_literal33_tree=null;
RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30");
RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31");
RewriteRuleSubtreeStream stream_comment=new RewriteRuleSubtreeStream(adaptor,"rule comment");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:56:2: ( '/*' comment '*/' -> ^( COMMENT comment ) )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:56:4: '/*' comment '*/'
{
string_literal31=(Token)match(input,30,FOLLOW_30_in_javadoc309); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_30.add(string_literal31);
pushFollow(FOLLOW_comment_in_javadoc311);
comment32=comment();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comment.add(comment32.getTree());
string_literal33=(Token)match(input,31,FOLLOW_31_in_javadoc313); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_31.add(string_literal33);
// AST REWRITE
// elements: comment
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 56:22: -> ^( COMMENT comment )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:56:25: ^( COMMENT comment )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMMENT, "COMMENT"), root_1);
adaptor.addChild(root_1, stream_comment.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 {
}
return retval;
}
// $ANTLR end "javadoc"
public static class comment_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "comment"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:59:1: comment : (~ ( '*/' ) )* ;
public final GuiceyDataParser.comment_return comment() throws RecognitionException {
GuiceyDataParser.comment_return retval = new GuiceyDataParser.comment_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set34=null;
Object set34_tree=null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:60:2: ( (~ ( '*/' ) )* )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:60:4: (~ ( '*/' ) )*
{
root_0 = (Object)adaptor.nil();
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:60:4: (~ ( '*/' ) )*
loop14:
do {
int alt14=2;
switch ( input.LA(1) ) {
case DATA:
case TYPE_MAP:
case TYPE_SET:
case TYPE_LIST:
case PARAMETERIZED_TYPE:
case TYPE_PRIMITIVE:
case PROPERTY:
case OPTION:
case COMMENT:
case PAIR:
case ENUM:
case ID:
case INT:
case FLOAT:
case STRING:
case TYPE:
case WS:
case EXPONENT:
case ESC_SEQ:
case HEX_DIGIT:
case UNICODE_ESC:
case OCTAL_ESC:
case 26:
case 27:
case 28:
case 29:
case 30:
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
case 40:
case 41:
case 42:
case 43:
{
alt14=1;
}
break;
}
switch (alt14) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:0:0: ~ ( '*/' )
{
set34=(Token)input.LT(1);
if ( (input.LA(1)>=DATA && input.LA(1)<=30)||(input.LA(1)>=32 && input.LA(1)<=43) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set34));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
default :
break loop14;
}
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "comment"
public static class option_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "option"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:63:1: option : ( '[' ID ']' -> ^( OPTION ID ) | '[' ID '(' value ')]' -> ^( OPTION ID value ) | '[' ID '(' ( pair ',' )* pair ')]' -> ^( OPTION ID ( pair )+ ) );
public final GuiceyDataParser.option_return option() throws RecognitionException {
GuiceyDataParser.option_return retval = new GuiceyDataParser.option_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal35=null;
Token ID36=null;
Token char_literal37=null;
Token char_literal38=null;
Token ID39=null;
Token char_literal40=null;
Token string_literal42=null;
Token char_literal43=null;
Token ID44=null;
Token char_literal45=null;
Token char_literal47=null;
Token string_literal49=null;
GuiceyDataParser.value_return value41 = null;
GuiceyDataParser.pair_return pair46 = null;
GuiceyDataParser.pair_return pair48 = null;
Object char_literal35_tree=null;
Object ID36_tree=null;
Object char_literal37_tree=null;
Object char_literal38_tree=null;
Object ID39_tree=null;
Object char_literal40_tree=null;
Object string_literal42_tree=null;
Object char_literal43_tree=null;
Object ID44_tree=null;
Object char_literal45_tree=null;
Object char_literal47_tree=null;
Object string_literal49_tree=null;
RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32");
RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33");
RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34");
RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29");
RewriteRuleSubtreeStream stream_pair=new RewriteRuleSubtreeStream(adaptor,"rule pair");
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:64:2: ( '[' ID ']' -> ^( OPTION ID ) | '[' ID '(' value ')]' -> ^( OPTION ID value ) | '[' ID '(' ( pair ',' )* pair ')]' -> ^( OPTION ID ( pair )+ ) )
int alt16=3;
switch ( input.LA(1) ) {
case 32:
{
switch ( input.LA(2) ) {
case ID:
{
switch ( input.LA(3) ) {
case 33:
{
alt16=1;
}
break;
case 34:
{
switch ( input.LA(4) ) {
case INT:
case FLOAT:
case STRING:
{
alt16=2;
}
break;
case ID:
{
alt16=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 4, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 2, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 1, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:64:4: '[' ID ']'
{
char_literal35=(Token)match(input,32,FOLLOW_32_in_option349); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_32.add(char_literal35);
ID36=(Token)match(input,ID,FOLLOW_ID_in_option351); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID36);
char_literal37=(Token)match(input,33,FOLLOW_33_in_option353); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_33.add(char_literal37);
// AST REWRITE
// elements: ID
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 64:15: -> ^( OPTION ID )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:64:18: ^( OPTION ID )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:65:4: '[' ID '(' value ')]'
{
char_literal38=(Token)match(input,32,FOLLOW_32_in_option366); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_32.add(char_literal38);
ID39=(Token)match(input,ID,FOLLOW_ID_in_option368); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID39);
char_literal40=(Token)match(input,34,FOLLOW_34_in_option370); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_34.add(char_literal40);
pushFollow(FOLLOW_value_in_option372);
value41=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_value.add(value41.getTree());
string_literal42=(Token)match(input,35,FOLLOW_35_in_option374); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_35.add(string_literal42);
// AST REWRITE
// elements: value, ID
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 65:26: -> ^( OPTION ID value )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:65:29: ^( OPTION ID value )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
adaptor.addChild(root_1, stream_value.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:67:4: '[' ID '(' ( pair ',' )* pair ')]'
{
char_literal43=(Token)match(input,32,FOLLOW_32_in_option390); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_32.add(char_literal43);
ID44=(Token)match(input,ID,FOLLOW_ID_in_option392); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID44);
char_literal45=(Token)match(input,34,FOLLOW_34_in_option394); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_34.add(char_literal45);
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:67:15: ( pair ',' )*
loop15:
do {
int alt15=2;
switch ( input.LA(1) ) {
case ID:
{
switch ( input.LA(2) ) {
case 36:
{
switch ( input.LA(3) ) {
case INT:
case FLOAT:
case STRING:
{
switch ( input.LA(4) ) {
case 29:
{
alt15=1;
}
break;
}
}
break;
}
}
break;
}
}
break;
}
switch (alt15) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:67:16: pair ','
{
pushFollow(FOLLOW_pair_in_option397);
pair46=pair();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pair.add(pair46.getTree());
char_literal47=(Token)match(input,29,FOLLOW_29_in_option399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_29.add(char_literal47);
}
break;
default :
break loop15;
}
} while (true);
pushFollow(FOLLOW_pair_in_option403);
pair48=pair();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pair.add(pair48.getTree());
string_literal49=(Token)match(input,35,FOLLOW_35_in_option405); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_35.add(string_literal49);
// AST REWRITE
// elements: pair, ID
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 67:37: -> ^( OPTION ID ( pair )+ )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:67:40: ^( OPTION ID ( pair )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
if ( !(stream_pair.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_pair.hasNext() ) {
adaptor.addChild(root_1, stream_pair.nextTree());
}
stream_pair.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 {
}
return retval;
}
// $ANTLR end "option"
public static class pair_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "pair"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:70:1: pair : key '=' value -> ^( PAIR key value ) ;
public final GuiceyDataParser.pair_return pair() throws RecognitionException {
GuiceyDataParser.pair_return retval = new GuiceyDataParser.pair_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal51=null;
GuiceyDataParser.key_return key50 = null;
GuiceyDataParser.value_return value52 = null;
Object char_literal51_tree=null;
RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36");
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
RewriteRuleSubtreeStream stream_key=new RewriteRuleSubtreeStream(adaptor,"rule key");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:71:2: ( key '=' value -> ^( PAIR key value ) )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:71:4: key '=' value
{
pushFollow(FOLLOW_key_in_pair428);
key50=key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_key.add(key50.getTree());
char_literal51=(Token)match(input,36,FOLLOW_36_in_pair430); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_36.add(char_literal51);
pushFollow(FOLLOW_value_in_pair432);
value52=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_value.add(value52.getTree());
// AST REWRITE
// elements: value, key
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 71:18: -> ^( PAIR key value )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:71:21: ^( PAIR key value )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PAIR, "PAIR"), root_1);
adaptor.addChild(root_1, stream_key.nextTree());
adaptor.addChild(root_1, stream_value.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 {
}
return retval;
}
// $ANTLR end "pair"
public static class key_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "key"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:74:1: key : ID ;
public final GuiceyDataParser.key_return key() throws RecognitionException {
GuiceyDataParser.key_return retval = new GuiceyDataParser.key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID53=null;
Object ID53_tree=null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:75:2: ( ID )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:75:4: ID
{
root_0 = (Object)adaptor.nil();
ID53=(Token)match(input,ID,FOLLOW_ID_in_key454); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ID53_tree = (Object)adaptor.create(ID53);
adaptor.addChild(root_0, ID53_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 {
}
return retval;
}
// $ANTLR end "key"
public static class value_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "value"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:77:1: value : ( INT | FLOAT | STRING );
public final GuiceyDataParser.value_return value() throws RecognitionException {
GuiceyDataParser.value_return retval = new GuiceyDataParser.value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set54=null;
Object set54_tree=null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:78:2: ( INT | FLOAT | STRING )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:
{
root_0 = (Object)adaptor.nil();
set54=(Token)input.LT(1);
if ( (input.LA(1)>=INT && input.LA(1)<=STRING) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set54));
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 {
}
return retval;
}
// $ANTLR end "value"
public static class property_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "property"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:83:1: property : ( type 'data;' -> ^( PROPERTY 'data' type ) | type ID ';' -> ^( PROPERTY ID type ) );
public final GuiceyDataParser.property_return property() throws RecognitionException {
GuiceyDataParser.property_return retval = new GuiceyDataParser.property_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal56=null;
Token ID58=null;
Token char_literal59=null;
GuiceyDataParser.type_return type55 = null;
GuiceyDataParser.type_return type57 = null;
Object string_literal56_tree=null;
Object ID58_tree=null;
Object char_literal59_tree=null;
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37");
RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38");
RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:91:2: ( type 'data;' -> ^( PROPERTY 'data' type ) | type ID ';' -> ^( PROPERTY ID type ) )
int alt17=2;
switch ( input.LA(1) ) {
case 39:
{
int LA17_1 = input.LA(2);
if ( (synpred21_GuiceyData()) ) {
alt17=1;
}
else if ( (true) ) {
alt17=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 1, input);
throw nvae;
}
}
break;
case 41:
{
int LA17_2 = input.LA(2);
if ( (synpred21_GuiceyData()) ) {
alt17=1;
}
else if ( (true) ) {
alt17=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 2, input);
throw nvae;
}
}
break;
case 42:
{
int LA17_3 = input.LA(2);
if ( (synpred21_GuiceyData()) ) {
alt17=1;
}
else if ( (true) ) {
alt17=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 3, input);
throw nvae;
}
}
break;
case TYPE:
{
int LA17_4 = input.LA(2);
if ( (synpred21_GuiceyData()) ) {
alt17=1;
}
else if ( (true) ) {
alt17=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 4, input);
throw nvae;
}
}
break;
case ID:
{
int LA17_5 = input.LA(2);
if ( (synpred21_GuiceyData()) ) {
alt17=1;
}
else if ( (true) ) {
alt17=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 5, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:91:4: type 'data;'
{
pushFollow(FOLLOW_type_in_property488);
type55=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type55.getTree());
string_literal56=(Token)match(input,37,FOLLOW_37_in_property490); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_37.add(string_literal56);
// AST REWRITE
// elements: DATA, type
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 91:17: -> ^( PROPERTY 'data' type )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:91:20: ^( PROPERTY 'data' type )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROPERTY, "PROPERTY"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(DATA, "DATA"));
adaptor.addChild(root_1, stream_type.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:92:4: type ID ';'
{
pushFollow(FOLLOW_type_in_property505);
type57=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type57.getTree());
ID58=(Token)match(input,ID,FOLLOW_ID_in_property507); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID58);
char_literal59=(Token)match(input,38,FOLLOW_38_in_property509); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_38.add(char_literal59);
// AST REWRITE
// elements: ID, type
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 92:16: -> ^( PROPERTY ID type )
{
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:92:19: ^( PROPERTY ID type )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROPERTY, "PROPERTY"), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
adaptor.addChild(root_1, stream_type.nextTree());
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 {
}
return retval;
}
// $ANTLR end "property"
public static class key_type_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "key_type"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:95:1: key_type : type ;
public final GuiceyDataParser.key_type_return key_type() throws RecognitionException {
GuiceyDataParser.key_type_return retval = new GuiceyDataParser.key_type_return();
retval.start = input.LT(1);
Object root_0 = null;
GuiceyDataParser.type_return type60 = null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:96:2: ( type )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:96:4: type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_type_in_key_type530);
type60=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type60.getTree());
}
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 {
}
return retval;
}
// $ANTLR end "key_type"
public static class value_type_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "value_type"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:99:1: value_type : type ;
public final GuiceyDataParser.value_type_return value_type() throws RecognitionException {
GuiceyDataParser.value_type_return retval = new GuiceyDataParser.value_type_return();
retval.start = input.LT(1);
Object root_0 = null;
GuiceyDataParser.type_return type61 = null;
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:100:2: ( type )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:100:4: type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_type_in_value_type541);
type61=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type61.getTree());
}
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 {
}
return retval;
}
// $ANTLR end "value_type"
public static class type_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "type"
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:103:1: type : ( 'map<' type ',' type '>' -> TYPE_MAP ( type )+ | 'set<' type '>' -> TYPE_SET type | 'list<' type '>' -> TYPE_LIST type | TYPE -> TYPE_PRIMITIVE TYPE | ID -> TYPE_PRIMITIVE ID | ID '<' type ( ',' type )* '>' -> PARAMETERIZED_TYPE ID ( type )+ );
public final GuiceyDataParser.type_return type() throws RecognitionException {
GuiceyDataParser.type_return retval = new GuiceyDataParser.type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal62=null;
Token char_literal64=null;
Token char_literal66=null;
Token string_literal67=null;
Token char_literal69=null;
Token string_literal70=null;
Token char_literal72=null;
Token TYPE73=null;
Token ID74=null;
Token ID75=null;
Token char_literal76=null;
Token char_literal78=null;
Token char_literal80=null;
GuiceyDataParser.type_return type63 = null;
GuiceyDataParser.type_return type65 = null;
GuiceyDataParser.type_return type68 = null;
GuiceyDataParser.type_return type71 = null;
GuiceyDataParser.type_return type77 = null;
GuiceyDataParser.type_return type79 = null;
Object string_literal62_tree=null;
Object char_literal64_tree=null;
Object char_literal66_tree=null;
Object string_literal67_tree=null;
Object char_literal69_tree=null;
Object string_literal70_tree=null;
Object char_literal72_tree=null;
Object TYPE73_tree=null;
Object ID74_tree=null;
Object ID75_tree=null;
Object char_literal76_tree=null;
Object char_literal78_tree=null;
Object char_literal80_tree=null;
RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43");
RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42");
RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41");
RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39");
RewriteRuleTokenStream stream_TYPE=new RewriteRuleTokenStream(adaptor,"token TYPE");
RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29");
RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");
try {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:104:2: ( 'map<' type ',' type '>' -> TYPE_MAP ( type )+ | 'set<' type '>' -> TYPE_SET type | 'list<' type '>' -> TYPE_LIST type | TYPE -> TYPE_PRIMITIVE TYPE | ID -> TYPE_PRIMITIVE ID | ID '<' type ( ',' type )* '>' -> PARAMETERIZED_TYPE ID ( type )+ )
int alt19=6;
switch ( input.LA(1) ) {
case 39:
{
alt19=1;
}
break;
case 41:
{
alt19=2;
}
break;
case 42:
{
alt19=3;
}
break;
case TYPE:
{
alt19=4;
}
break;
case ID:
{
switch ( input.LA(2) ) {
case 43:
{
alt19=6;
}
break;
case EOF:
case ID:
case 29:
case 37:
case 40:
{
alt19=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 19, 5, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:104:4: 'map<' type ',' type '>'
{
string_literal62=(Token)match(input,39,FOLLOW_39_in_type552); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_39.add(string_literal62);
pushFollow(FOLLOW_type_in_type554);
type63=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type63.getTree());
char_literal64=(Token)match(input,29,FOLLOW_29_in_type556); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_29.add(char_literal64);
pushFollow(FOLLOW_type_in_type558);
type65=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type65.getTree());
char_literal66=(Token)match(input,40,FOLLOW_40_in_type560); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_40.add(char_literal66);
// AST REWRITE
// elements: type
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 104:29: -> TYPE_MAP ( type )+
{
adaptor.addChild(root_0, (Object)adaptor.create(TYPE_MAP, "TYPE_MAP"));
if ( !(stream_type.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_type.hasNext() ) {
adaptor.addChild(root_0, stream_type.nextTree());
}
stream_type.reset();
}
retval.tree = root_0;}
}
break;
case 2 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:105:4: 'set<' type '>'
{
string_literal67=(Token)match(input,41,FOLLOW_41_in_type572); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_41.add(string_literal67);
pushFollow(FOLLOW_type_in_type574);
type68=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type68.getTree());
char_literal69=(Token)match(input,40,FOLLOW_40_in_type576); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_40.add(char_literal69);
// AST REWRITE
// elements: type
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 105:20: -> TYPE_SET type
{
adaptor.addChild(root_0, (Object)adaptor.create(TYPE_SET, "TYPE_SET"));
adaptor.addChild(root_0, stream_type.nextTree());
}
retval.tree = root_0;}
}
break;
case 3 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:106:4: 'list<' type '>'
{
string_literal70=(Token)match(input,42,FOLLOW_42_in_type587); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_42.add(string_literal70);
pushFollow(FOLLOW_type_in_type589);
type71=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type71.getTree());
char_literal72=(Token)match(input,40,FOLLOW_40_in_type591); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_40.add(char_literal72);
// AST REWRITE
// elements: type
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 106:21: -> TYPE_LIST type
{
adaptor.addChild(root_0, (Object)adaptor.create(TYPE_LIST, "TYPE_LIST"));
adaptor.addChild(root_0, stream_type.nextTree());
}
retval.tree = root_0;}
}
break;
case 4 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:107:4: TYPE
{
TYPE73=(Token)match(input,TYPE,FOLLOW_TYPE_in_type602); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TYPE.add(TYPE73);
// AST REWRITE
// elements: TYPE
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 107:9: -> TYPE_PRIMITIVE TYPE
{
adaptor.addChild(root_0, (Object)adaptor.create(TYPE_PRIMITIVE, "TYPE_PRIMITIVE"));
adaptor.addChild(root_0, stream_TYPE.nextNode());
}
retval.tree = root_0;}
}
break;
case 5 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:108:4: ID
{
ID74=(Token)match(input,ID,FOLLOW_ID_in_type613); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID74);
// AST REWRITE
// elements: ID
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 108:7: -> TYPE_PRIMITIVE ID
{
adaptor.addChild(root_0, (Object)adaptor.create(TYPE_PRIMITIVE, "TYPE_PRIMITIVE"));
adaptor.addChild(root_0, stream_ID.nextNode());
}
retval.tree = root_0;}
}
break;
case 6 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:109:4: ID '<' type ( ',' type )* '>'
{
ID75=(Token)match(input,ID,FOLLOW_ID_in_type624); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ID.add(ID75);
char_literal76=(Token)match(input,43,FOLLOW_43_in_type626); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_43.add(char_literal76);
pushFollow(FOLLOW_type_in_type628);
type77=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type77.getTree());
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:109:16: ( ',' type )*
loop18:
do {
int alt18=2;
switch ( input.LA(1) ) {
case 29:
{
alt18=1;
}
break;
}
switch (alt18) {
case 1 :
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:109:17: ',' type
{
char_literal78=(Token)match(input,29,FOLLOW_29_in_type631); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_29.add(char_literal78);
pushFollow(FOLLOW_type_in_type633);
type79=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type.add(type79.getTree());
}
break;
default :
break loop18;
}
} while (true);
char_literal80=(Token)match(input,40,FOLLOW_40_in_type637); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_40.add(char_literal80);
// AST REWRITE
// elements: type, ID
// 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.tree:null);
root_0 = (Object)adaptor.nil();
// 109:32: -> PARAMETERIZED_TYPE ID ( type )+
{
adaptor.addChild(root_0, (Object)adaptor.create(PARAMETERIZED_TYPE, "PARAMETERIZED_TYPE"));
adaptor.addChild(root_0, stream_ID.nextNode());
if ( !(stream_type.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_type.hasNext() ) {
adaptor.addChild(root_0, stream_type.nextTree());
}
stream_type.reset();
}
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 {
}
return retval;
}
// $ANTLR end "type"
// $ANTLR start synpred21_GuiceyData
public final void synpred21_GuiceyData_fragment() throws RecognitionException {
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:91:4: ( type 'data;' )
// com/lowereast/guiceymongo/data/generator/parser/GuiceyData.g:91:4: type 'data;'
{
pushFollow(FOLLOW_type_in_synpred21_GuiceyData488);
type();
state._fsp--;
if (state.failed) return ;
match(input,37,FOLLOW_37_in_synpred21_GuiceyData490); if (state.failed) return ;
}
}
// $ANTLR end synpred21_GuiceyData
// Delegated rules
public final boolean synpred21_GuiceyData() {
state.backtracking++;
int start = input.mark();
try {
synpred21_GuiceyData_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;
}
protected DFA2 dfa2 = new DFA2(this);
protected DFA6 dfa6 = new DFA6(this);
protected DFA10 dfa10 = new DFA10(this);
protected DFA13 dfa13 = new DFA13(this);
static final String DFA2_eotS =
"\6\uffff";
static final String DFA2_eofS =
"\6\uffff";
static final String DFA2_minS =
"\2\4\2\uffff\2\4";
static final String DFA2_maxS =
"\1\36\1\53\2\uffff\1\53\1\16";
static final String DFA2_acceptS =
"\2\uffff\1\1\1\2\2\uffff";
static final String DFA2_specialS =
"\6\uffff}>";
static final String[] DFA2_transitionS = {
"\1\2\11\uffff\1\3\17\uffff\1\1",
"\33\4\1\5\14\4",
"",
"",
"\33\4\1\5\14\4",
"\1\2\11\uffff\1\3"
};
static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
static final short[][] DFA2_transition;
static {
int numStates = DFA2_transitionS.length;
DFA2_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
}
}
class DFA2 extends DFA {
public DFA2(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 2;
this.eot = DFA2_eot;
this.eof = DFA2_eof;
this.min = DFA2_min;
this.max = DFA2_max;
this.accept = DFA2_accept;
this.special = DFA2_special;
this.transition = DFA2_transition;
}
public String getDescription() {
return "35:1: entry : ( data | enumeration );";
}
}
static final String DFA6_eotS =
"\10\uffff";
static final String DFA6_eofS =
"\10\uffff";
static final String DFA6_minS =
"\2\4\1\17\2\4\1\32\2\uffff";
static final String DFA6_maxS =
"\1\36\1\53\1\17\1\53\1\4\1\34\2\uffff";
static final String DFA6_acceptS =
"\6\uffff\1\1\1\2";
static final String DFA6_specialS =
"\10\uffff}>";
static final String[] DFA6_transitionS = {
"\1\2\31\uffff\1\1",
"\33\3\1\4\14\3",
"\1\5",
"\33\3\1\4\14\3",
"\1\2",
"\1\6\1\uffff\1\7",
"",
""
};
static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS);
static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS);
static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS);
static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS);
static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS);
static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS);
static final short[][] DFA6_transition;
static {
int numStates = DFA6_transitionS.length;
DFA6_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA6_transition[i] = DFA.unpackEncodedString(DFA6_transitionS[i]);
}
}
class DFA6 extends DFA {
public DFA6(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 6;
this.eot = DFA6_eot;
this.eof = DFA6_eof;
this.min = DFA6_min;
this.max = DFA6_max;
this.accept = DFA6_accept;
this.special = DFA6_special;
this.transition = DFA6_transition;
}
public String getDescription() {
return "40:1: data : ( ( javadoc )? DATA ID '{' ( data_entry )* '}' -> ^( DATA ID ( javadoc )? ( data_entry )* ) | ( javadoc )? DATA ID '{}' -> ^( DATA ID ( javadoc )? ) );";
}
}
static final String DFA10_eotS =
"\10\uffff";
static final String DFA10_eofS =
"\10\uffff";
static final String DFA10_minS =
"\1\16\1\4\1\17\1\4\1\16\1\32\2\uffff";
static final String DFA10_maxS =
"\1\36\1\53\1\17\1\53\1\16\1\34\2\uffff";
static final String DFA10_acceptS =
"\6\uffff\1\1\1\2";
static final String DFA10_specialS =
"\10\uffff}>";
static final String[] DFA10_transitionS = {
"\1\2\17\uffff\1\1",
"\33\3\1\4\14\3",
"\1\5",
"\33\3\1\4\14\3",
"\1\2",
"\1\7\1\uffff\1\6",
"",
""
};
static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
static final short[][] DFA10_transition;
static {
int numStates = DFA10_transitionS.length;
DFA10_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
}
}
class DFA10 extends DFA {
public DFA10(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 10;
this.eot = DFA10_eot;
this.eof = DFA10_eof;
this.min = DFA10_min;
this.max = DFA10_max;
this.accept = DFA10_accept;
this.special = DFA10_special;
this.transition = DFA10_transition;
}
public String getDescription() {
return "45:1: enumeration : ( ( javadoc )? ENUM ID '{}' -> ^( ENUM ID ( javadoc )? ) | ( javadoc )? ENUM ID '{' ( ID ',' )* ID '}' -> ^( ENUM ( ID )+ ( javadoc )? ) );";
}
}
static final String DFA13_eotS =
"\6\uffff";
static final String DFA13_eofS =
"\6\uffff";
static final String DFA13_minS =
"\2\4\2\uffff\2\4";
static final String DFA13_maxS =
"\1\52\1\53\2\uffff\1\53\1\52";
static final String DFA13_acceptS =
"\2\uffff\1\1\1\2\2\uffff";
static final String DFA13_specialS =
"\6\uffff}>";
static final String[] DFA13_transitionS = {
"\1\2\11\uffff\1\2\1\3\3\uffff\1\3\12\uffff\1\1\1\uffff\1\3\6"+
"\uffff\1\3\1\uffff\2\3",
"\33\4\1\5\14\4",
"",
"",
"\33\4\1\5\14\4",
"\1\2\11\uffff\1\2\1\3\3\uffff\1\3\14\uffff\1\3\6\uffff\1\3"+
"\1\uffff\2\3"
};
static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
static final short[][] DFA13_transition;
static {
int numStates = DFA13_transitionS.length;
DFA13_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
}
}
class DFA13 extends DFA {
public DFA13(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 13;
this.eot = DFA13_eot;
this.eof = DFA13_eof;
this.min = DFA13_min;
this.max = DFA13_max;
this.accept = DFA13_accept;
this.special = DFA13_special;
this.transition = DFA13_transition;
}
public String getDescription() {
return "50:1: data_entry : ( entry | ( javadoc )? ( option )* property -> ^( property ( javadoc )? ( option )* ) );";
}
}
public static final BitSet FOLLOW_entry_in_start121 = new BitSet(new long[]{0x0000000040004010L});
public static final BitSet FOLLOW_EOF_in_start124 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_data_in_entry135 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumeration_in_entry140 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_javadoc_in_data151 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_DATA_in_data154 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_data156 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_26_in_data158 = new BitSet(new long[]{0x000006814808C010L});
public static final BitSet FOLLOW_data_entry_in_data160 = new BitSet(new long[]{0x000006814808C010L});
public static final BitSet FOLLOW_27_in_data163 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_javadoc_in_data182 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_DATA_in_data185 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_data187 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_28_in_data189 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_javadoc_in_enumeration211 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_ENUM_in_enumeration214 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_enumeration216 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_28_in_enumeration218 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_javadoc_in_enumeration234 = new BitSet(new long[]{0x0000000000004000L});
public static final BitSet FOLLOW_ENUM_in_enumeration237 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_enumeration239 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_26_in_enumeration241 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_enumeration244 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_29_in_enumeration246 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_enumeration250 = new BitSet(new long[]{0x0000000008000000L});
public static final BitSet FOLLOW_27_in_enumeration252 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entry_in_data_entry275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_javadoc_in_data_entry280 = new BitSet(new long[]{0x000006814008C010L});
public static final BitSet FOLLOW_option_in_data_entry283 = new BitSet(new long[]{0x000006814008C010L});
public static final BitSet FOLLOW_property_in_data_entry286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_30_in_javadoc309 = new BitSet(new long[]{0x00000FFFFFFFFFF0L});
public static final BitSet FOLLOW_comment_in_javadoc311 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_31_in_javadoc313 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_comment332 = new BitSet(new long[]{0x00000FFF7FFFFFF2L});
public static final BitSet FOLLOW_32_in_option349 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_option351 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_33_in_option353 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_32_in_option366 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_option368 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_34_in_option370 = new BitSet(new long[]{0x0000000000070000L});
public static final BitSet FOLLOW_value_in_option372 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_option374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_32_in_option390 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_option392 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_34_in_option394 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_pair_in_option397 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_29_in_option399 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_pair_in_option403 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_option405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_key_in_pair428 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_36_in_pair430 = new BitSet(new long[]{0x0000000000070000L});
public static final BitSet FOLLOW_value_in_pair432 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_key454 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_value0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_property488 = new BitSet(new long[]{0x0000002000000000L});
public static final BitSet FOLLOW_37_in_property490 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_property505 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_ID_in_property507 = new BitSet(new long[]{0x0000004000000000L});
public static final BitSet FOLLOW_38_in_property509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_key_type530 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_value_type541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_39_in_type552 = new BitSet(new long[]{0x0000068000088000L});
public static final BitSet FOLLOW_type_in_type554 = new BitSet(new long[]{0x0000000020000000L});
public static final BitSet FOLLOW_29_in_type556 = new BitSet(new long[]{0x0000068000088000L});
public static final BitSet FOLLOW_type_in_type558 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_40_in_type560 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_41_in_type572 = new BitSet(new long[]{0x0000068000088000L});
public static final BitSet FOLLOW_type_in_type574 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_40_in_type576 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_42_in_type587 = new BitSet(new long[]{0x0000068000088000L});
public static final BitSet FOLLOW_type_in_type589 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_40_in_type591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_type602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_type613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_type624 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_43_in_type626 = new BitSet(new long[]{0x0000068000088000L});
public static final BitSet FOLLOW_type_in_type628 = new BitSet(new long[]{0x0000010020000000L});
public static final BitSet FOLLOW_29_in_type631 = new BitSet(new long[]{0x0000068000088000L});
public static final BitSet FOLLOW_type_in_type633 = new BitSet(new long[]{0x0000010020000000L});
public static final BitSet FOLLOW_40_in_type637 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_synpred21_GuiceyData488 = new BitSet(new long[]{0x0000002000000000L});
public static final BitSet FOLLOW_37_in_synpred21_GuiceyData490 = new BitSet(new long[]{0x0000000000000002L});
}