
com.facebook.swift.parser.antlr.ThriftParser Maven / Gradle / Ivy
// $ANTLR 3.5.2 com/facebook/swift/parser/antlr/Thrift.g 2016-06-03 07:02:07
package com.facebook.swift.parser.antlr;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
@SuppressWarnings("all")
public class ThriftParser extends Parser {
public static final String[] tokenNames = new String[] {
"", "", "", "", "ARGS", "COMMA", "COMMENT", "CONST",
"CPP_INCLUDE", "CPP_TYPE", "DEFAULT_NAMESPACE", "DIGIT", "DOCUMENT", "DOUBLE",
"ENTRY", "ENUM", "EXCEPTION", "EXTENDS", "FIELD", "HEX_DIGIT", "HEX_INTEGER",
"IDENTIFIER", "INCLUDE", "INTEGER", "LETTER", "LIST", "LITERAL", "MAP",
"METHOD", "NAMESPACE", "ONEWAY", "OPTIONAL", "REQUIRED", "REQUIREDNESS",
"SENUM", "SERVICE", "SET", "STRUCT", "THROWS", "TYPE", "TYPEDEF", "TYPES",
"TYPE_BINARY", "TYPE_BOOL", "TYPE_BYTE", "TYPE_DOUBLE", "TYPE_I16", "TYPE_I32",
"TYPE_I64", "TYPE_STRING", "UNION", "VOID", "WS", "'('", "')'", "'*'",
"':'", "';'", "'<'", "'='", "'>'", "'['", "']'", "'async'", "'const'",
"'cpp_include'", "'cpp_namespace'", "'cpp_type'", "'enum'", "'exception'",
"'extends'", "'include'", "'list'", "'map'", "'namespace'", "'oneway'",
"'optional'", "'php_namespace'", "'required'", "'senum'", "'service'",
"'set'", "'struct'", "'throws'", "'typedef'", "'union'", "'void'", "'{'",
"'}'"
};
public static final int EOF=-1;
public static final int T__53=53;
public static final int T__54=54;
public static final int T__55=55;
public static final int T__56=56;
public static final int T__57=57;
public static final int T__58=58;
public static final int T__59=59;
public static final int T__60=60;
public static final int T__61=61;
public static final int T__62=62;
public static final int T__63=63;
public static final int T__64=64;
public static final int T__65=65;
public static final int T__66=66;
public static final int T__67=67;
public static final int T__68=68;
public static final int T__69=69;
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 T__76=76;
public static final int T__77=77;
public static final int T__78=78;
public static final int T__79=79;
public static final int T__80=80;
public static final int T__81=81;
public static final int T__82=82;
public static final int T__83=83;
public static final int T__84=84;
public static final int T__85=85;
public static final int T__86=86;
public static final int T__87=87;
public static final int T__88=88;
public static final int ARGS=4;
public static final int COMMA=5;
public static final int COMMENT=6;
public static final int CONST=7;
public static final int CPP_INCLUDE=8;
public static final int CPP_TYPE=9;
public static final int DEFAULT_NAMESPACE=10;
public static final int DIGIT=11;
public static final int DOCUMENT=12;
public static final int DOUBLE=13;
public static final int ENTRY=14;
public static final int ENUM=15;
public static final int EXCEPTION=16;
public static final int EXTENDS=17;
public static final int FIELD=18;
public static final int HEX_DIGIT=19;
public static final int HEX_INTEGER=20;
public static final int IDENTIFIER=21;
public static final int INCLUDE=22;
public static final int INTEGER=23;
public static final int LETTER=24;
public static final int LIST=25;
public static final int LITERAL=26;
public static final int MAP=27;
public static final int METHOD=28;
public static final int NAMESPACE=29;
public static final int ONEWAY=30;
public static final int OPTIONAL=31;
public static final int REQUIRED=32;
public static final int REQUIREDNESS=33;
public static final int SENUM=34;
public static final int SERVICE=35;
public static final int SET=36;
public static final int STRUCT=37;
public static final int THROWS=38;
public static final int TYPE=39;
public static final int TYPEDEF=40;
public static final int TYPES=41;
public static final int TYPE_BINARY=42;
public static final int TYPE_BOOL=43;
public static final int TYPE_BYTE=44;
public static final int TYPE_DOUBLE=45;
public static final int TYPE_I16=46;
public static final int TYPE_I32=47;
public static final int TYPE_I64=48;
public static final int TYPE_STRING=49;
public static final int UNION=50;
public static final int VOID=51;
public static final int WS=52;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public ThriftParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public ThriftParser(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 ThriftParser.tokenNames; }
@Override public String getGrammarFileName() { return "com/facebook/swift/parser/antlr/Thrift.g"; }
public static class document_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "document"
// com/facebook/swift/parser/antlr/Thrift.g:66:1: document : ( header )* ( definition )* EOF -> ^( DOCUMENT ( header )* ( definition )* ) ;
public final ThriftParser.document_return document() throws RecognitionException {
ThriftParser.document_return retval = new ThriftParser.document_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF3=null;
ParserRuleReturnScope header1 =null;
ParserRuleReturnScope definition2 =null;
Object EOF3_tree=null;
RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
RewriteRuleSubtreeStream stream_header=new RewriteRuleSubtreeStream(adaptor,"rule header");
RewriteRuleSubtreeStream stream_definition=new RewriteRuleSubtreeStream(adaptor,"rule definition");
try {
// com/facebook/swift/parser/antlr/Thrift.g:67:5: ( ( header )* ( definition )* EOF -> ^( DOCUMENT ( header )* ( definition )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:67:7: ( header )* ( definition )* EOF
{
// com/facebook/swift/parser/antlr/Thrift.g:67:7: ( header )*
loop1:
while (true) {
int alt1=2;
int LA1_0 = input.LA(1);
if ( ((LA1_0 >= 65 && LA1_0 <= 66)||LA1_0==71||LA1_0==74||LA1_0==77) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:67:7: header
{
pushFollow(FOLLOW_header_in_document264);
header1=header();
state._fsp--;
stream_header.add(header1.getTree());
}
break;
default :
break loop1;
}
}
// com/facebook/swift/parser/antlr/Thrift.g:67:15: ( definition )*
loop2:
while (true) {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==64||(LA2_0 >= 68 && LA2_0 <= 69)||(LA2_0 >= 79 && LA2_0 <= 80)||LA2_0==82||(LA2_0 >= 84 && LA2_0 <= 85)) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:67:15: definition
{
pushFollow(FOLLOW_definition_in_document267);
definition2=definition();
state._fsp--;
stream_definition.add(definition2.getTree());
}
break;
default :
break loop2;
}
}
EOF3=(Token)match(input,EOF,FOLLOW_EOF_in_document270);
stream_EOF.add(EOF3);
// AST REWRITE
// elements: definition, header
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 67:31: -> ^( DOCUMENT ( header )* ( definition )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:67:34: ^( DOCUMENT ( header )* ( definition )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DOCUMENT, "DOCUMENT"), root_1);
// com/facebook/swift/parser/antlr/Thrift.g:67:45: ( header )*
while ( stream_header.hasNext() ) {
adaptor.addChild(root_1, stream_header.nextTree());
}
stream_header.reset();
// com/facebook/swift/parser/antlr/Thrift.g:67:53: ( definition )*
while ( stream_definition.hasNext() ) {
adaptor.addChild(root_1, stream_definition.nextTree());
}
stream_definition.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "document"
public static class header_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "header"
// com/facebook/swift/parser/antlr/Thrift.g:71:1: header : ( include | namespace | cpp_include );
public final ThriftParser.header_return header() throws RecognitionException {
ThriftParser.header_return retval = new ThriftParser.header_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope include4 =null;
ParserRuleReturnScope namespace5 =null;
ParserRuleReturnScope cpp_include6 =null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:72:5: ( include | namespace | cpp_include )
int alt3=3;
switch ( input.LA(1) ) {
case 71:
{
alt3=1;
}
break;
case 66:
case 74:
case 77:
{
alt3=2;
}
break;
case 65:
{
alt3=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:72:7: include
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_include_in_header300);
include4=include();
state._fsp--;
adaptor.addChild(root_0, include4.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:72:17: namespace
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_namespace_in_header304);
namespace5=namespace();
state._fsp--;
adaptor.addChild(root_0, namespace5.getTree());
}
break;
case 3 :
// com/facebook/swift/parser/antlr/Thrift.g:72:29: cpp_include
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_cpp_include_in_header308);
cpp_include6=cpp_include();
state._fsp--;
adaptor.addChild(root_0, cpp_include6.getTree());
}
break;
}
retval.stop = input.LT(-1);
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 "header"
public static class include_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "include"
// com/facebook/swift/parser/antlr/Thrift.g:75:1: include : 'include' LITERAL -> ^( INCLUDE LITERAL ) ;
public final ThriftParser.include_return include() throws RecognitionException {
ThriftParser.include_return retval = new ThriftParser.include_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal7=null;
Token LITERAL8=null;
Object string_literal7_tree=null;
Object LITERAL8_tree=null;
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71");
try {
// com/facebook/swift/parser/antlr/Thrift.g:76:5: ( 'include' LITERAL -> ^( INCLUDE LITERAL ) )
// com/facebook/swift/parser/antlr/Thrift.g:76:7: 'include' LITERAL
{
string_literal7=(Token)match(input,71,FOLLOW_71_in_include325);
stream_71.add(string_literal7);
LITERAL8=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_include327);
stream_LITERAL.add(LITERAL8);
// AST REWRITE
// elements: LITERAL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 76:25: -> ^( INCLUDE LITERAL )
{
// com/facebook/swift/parser/antlr/Thrift.g:76:28: ^( INCLUDE LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INCLUDE, "INCLUDE"), root_1);
adaptor.addChild(root_1, stream_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "include"
public static class namespace_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "namespace"
// com/facebook/swift/parser/antlr/Thrift.g:79:1: namespace : ( 'namespace' '*' (v= IDENTIFIER |v= LITERAL ) -> ^( DEFAULT_NAMESPACE $v) | 'namespace' k= IDENTIFIER (v= IDENTIFIER |v= LITERAL ) -> ^( NAMESPACE $k $v) | 'cpp_namespace' IDENTIFIER -> ^( NAMESPACE IDENTIFIER[\"cpp\"] IDENTIFIER ) | 'php_namespace' IDENTIFIER -> ^( NAMESPACE IDENTIFIER[\"php\"] IDENTIFIER ) );
public final ThriftParser.namespace_return namespace() throws RecognitionException {
ThriftParser.namespace_return retval = new ThriftParser.namespace_return();
retval.start = input.LT(1);
Object root_0 = null;
Token v=null;
Token k=null;
Token string_literal9=null;
Token char_literal10=null;
Token string_literal11=null;
Token string_literal12=null;
Token IDENTIFIER13=null;
Token string_literal14=null;
Token IDENTIFIER15=null;
Object v_tree=null;
Object k_tree=null;
Object string_literal9_tree=null;
Object char_literal10_tree=null;
Object string_literal11_tree=null;
Object string_literal12_tree=null;
Object IDENTIFIER13_tree=null;
Object string_literal14_tree=null;
Object IDENTIFIER15_tree=null;
RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55");
RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66");
RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74");
try {
// com/facebook/swift/parser/antlr/Thrift.g:80:5: ( 'namespace' '*' (v= IDENTIFIER |v= LITERAL ) -> ^( DEFAULT_NAMESPACE $v) | 'namespace' k= IDENTIFIER (v= IDENTIFIER |v= LITERAL ) -> ^( NAMESPACE $k $v) | 'cpp_namespace' IDENTIFIER -> ^( NAMESPACE IDENTIFIER[\"cpp\"] IDENTIFIER ) | 'php_namespace' IDENTIFIER -> ^( NAMESPACE IDENTIFIER[\"php\"] IDENTIFIER ) )
int alt6=4;
switch ( input.LA(1) ) {
case 74:
{
int LA6_1 = input.LA(2);
if ( (LA6_1==55) ) {
alt6=1;
}
else if ( (LA6_1==IDENTIFIER) ) {
alt6=2;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 6, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 66:
{
alt6=3;
}
break;
case 77:
{
alt6=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 6, 0, input);
throw nvae;
}
switch (alt6) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:80:7: 'namespace' '*' (v= IDENTIFIER |v= LITERAL )
{
string_literal9=(Token)match(input,74,FOLLOW_74_in_namespace352);
stream_74.add(string_literal9);
char_literal10=(Token)match(input,55,FOLLOW_55_in_namespace354);
stream_55.add(char_literal10);
// com/facebook/swift/parser/antlr/Thrift.g:80:23: (v= IDENTIFIER |v= LITERAL )
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==IDENTIFIER) ) {
alt4=1;
}
else if ( (LA4_0==LITERAL) ) {
alt4=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:80:24: v= IDENTIFIER
{
v=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_namespace359);
stream_IDENTIFIER.add(v);
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:80:39: v= LITERAL
{
v=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_namespace365);
stream_LITERAL.add(v);
}
break;
}
// AST REWRITE
// elements: v
// token labels: v
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_v=new RewriteRuleTokenStream(adaptor,"token v",v);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 80:50: -> ^( DEFAULT_NAMESPACE $v)
{
// com/facebook/swift/parser/antlr/Thrift.g:80:53: ^( DEFAULT_NAMESPACE $v)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFAULT_NAMESPACE, "DEFAULT_NAMESPACE"), root_1);
adaptor.addChild(root_1, stream_v.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:81:7: 'namespace' k= IDENTIFIER (v= IDENTIFIER |v= LITERAL )
{
string_literal11=(Token)match(input,74,FOLLOW_74_in_namespace383);
stream_74.add(string_literal11);
k=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_namespace387);
stream_IDENTIFIER.add(k);
// com/facebook/swift/parser/antlr/Thrift.g:81:32: (v= IDENTIFIER |v= LITERAL )
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==IDENTIFIER) ) {
alt5=1;
}
else if ( (LA5_0==LITERAL) ) {
alt5=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 5, 0, input);
throw nvae;
}
switch (alt5) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:81:33: v= IDENTIFIER
{
v=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_namespace392);
stream_IDENTIFIER.add(v);
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:81:48: v= LITERAL
{
v=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_namespace398);
stream_LITERAL.add(v);
}
break;
}
// AST REWRITE
// elements: k, v
// token labels: v, k
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_v=new RewriteRuleTokenStream(adaptor,"token v",v);
RewriteRuleTokenStream stream_k=new RewriteRuleTokenStream(adaptor,"token k",k);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 81:59: -> ^( NAMESPACE $k $v)
{
// com/facebook/swift/parser/antlr/Thrift.g:81:62: ^( NAMESPACE $k $v)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NAMESPACE, "NAMESPACE"), root_1);
adaptor.addChild(root_1, stream_k.nextNode());
adaptor.addChild(root_1, stream_v.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 3 :
// com/facebook/swift/parser/antlr/Thrift.g:82:7: 'cpp_namespace' IDENTIFIER
{
string_literal12=(Token)match(input,66,FOLLOW_66_in_namespace419);
stream_66.add(string_literal12);
IDENTIFIER13=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_namespace421);
stream_IDENTIFIER.add(IDENTIFIER13);
// AST REWRITE
// elements: IDENTIFIER, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 82:34: -> ^( NAMESPACE IDENTIFIER[\"cpp\"] IDENTIFIER )
{
// com/facebook/swift/parser/antlr/Thrift.g:82:37: ^( NAMESPACE IDENTIFIER[\"cpp\"] IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NAMESPACE, "NAMESPACE"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(IDENTIFIER, "cpp"));
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 4 :
// com/facebook/swift/parser/antlr/Thrift.g:83:7: 'php_namespace' IDENTIFIER
{
string_literal14=(Token)match(input,77,FOLLOW_77_in_namespace440);
stream_77.add(string_literal14);
IDENTIFIER15=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_namespace442);
stream_IDENTIFIER.add(IDENTIFIER15);
// AST REWRITE
// elements: IDENTIFIER, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 83:34: -> ^( NAMESPACE IDENTIFIER[\"php\"] IDENTIFIER )
{
// com/facebook/swift/parser/antlr/Thrift.g:83:37: ^( NAMESPACE IDENTIFIER[\"php\"] IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NAMESPACE, "NAMESPACE"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(IDENTIFIER, "php"));
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
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 "namespace"
public static class cpp_include_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "cpp_include"
// com/facebook/swift/parser/antlr/Thrift.g:86:1: cpp_include : 'cpp_include' LITERAL -> ^( CPP_INCLUDE LITERAL ) ;
public final ThriftParser.cpp_include_return cpp_include() throws RecognitionException {
ThriftParser.cpp_include_return retval = new ThriftParser.cpp_include_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal16=null;
Token LITERAL17=null;
Object string_literal16_tree=null;
Object LITERAL17_tree=null;
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65");
try {
// com/facebook/swift/parser/antlr/Thrift.g:87:5: ( 'cpp_include' LITERAL -> ^( CPP_INCLUDE LITERAL ) )
// com/facebook/swift/parser/antlr/Thrift.g:87:7: 'cpp_include' LITERAL
{
string_literal16=(Token)match(input,65,FOLLOW_65_in_cpp_include470);
stream_65.add(string_literal16);
LITERAL17=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_cpp_include472);
stream_LITERAL.add(LITERAL17);
// AST REWRITE
// elements: LITERAL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 87:29: -> ^( CPP_INCLUDE LITERAL )
{
// com/facebook/swift/parser/antlr/Thrift.g:87:32: ^( CPP_INCLUDE LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CPP_INCLUDE, "CPP_INCLUDE"), root_1);
adaptor.addChild(root_1, stream_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "cpp_include"
public static class definition_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "definition"
// com/facebook/swift/parser/antlr/Thrift.g:91:1: definition : ( const_rule | typedef | enum_rule | senum | struct | union | exception | service );
public final ThriftParser.definition_return definition() throws RecognitionException {
ThriftParser.definition_return retval = new ThriftParser.definition_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope const_rule18 =null;
ParserRuleReturnScope typedef19 =null;
ParserRuleReturnScope enum_rule20 =null;
ParserRuleReturnScope senum21 =null;
ParserRuleReturnScope struct22 =null;
ParserRuleReturnScope union23 =null;
ParserRuleReturnScope exception24 =null;
ParserRuleReturnScope service25 =null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:92:5: ( const_rule | typedef | enum_rule | senum | struct | union | exception | service )
int alt7=8;
switch ( input.LA(1) ) {
case 64:
{
alt7=1;
}
break;
case 84:
{
alt7=2;
}
break;
case 68:
{
alt7=3;
}
break;
case 79:
{
alt7=4;
}
break;
case 82:
{
alt7=5;
}
break;
case 85:
{
alt7=6;
}
break;
case 69:
{
alt7=7;
}
break;
case 80:
{
alt7=8;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:92:7: const_rule
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_rule_in_definition498);
const_rule18=const_rule();
state._fsp--;
adaptor.addChild(root_0, const_rule18.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:92:20: typedef
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typedef_in_definition502);
typedef19=typedef();
state._fsp--;
adaptor.addChild(root_0, typedef19.getTree());
}
break;
case 3 :
// com/facebook/swift/parser/antlr/Thrift.g:92:30: enum_rule
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enum_rule_in_definition506);
enum_rule20=enum_rule();
state._fsp--;
adaptor.addChild(root_0, enum_rule20.getTree());
}
break;
case 4 :
// com/facebook/swift/parser/antlr/Thrift.g:92:42: senum
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_senum_in_definition510);
senum21=senum();
state._fsp--;
adaptor.addChild(root_0, senum21.getTree());
}
break;
case 5 :
// com/facebook/swift/parser/antlr/Thrift.g:92:50: struct
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_struct_in_definition514);
struct22=struct();
state._fsp--;
adaptor.addChild(root_0, struct22.getTree());
}
break;
case 6 :
// com/facebook/swift/parser/antlr/Thrift.g:92:59: union
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_union_in_definition518);
union23=union();
state._fsp--;
adaptor.addChild(root_0, union23.getTree());
}
break;
case 7 :
// com/facebook/swift/parser/antlr/Thrift.g:92:67: exception
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_exception_in_definition522);
exception24=exception();
state._fsp--;
adaptor.addChild(root_0, exception24.getTree());
}
break;
case 8 :
// com/facebook/swift/parser/antlr/Thrift.g:92:79: service
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_service_in_definition526);
service25=service();
state._fsp--;
adaptor.addChild(root_0, service25.getTree());
}
break;
}
retval.stop = input.LT(-1);
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 "definition"
public static class const_rule_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_rule"
// com/facebook/swift/parser/antlr/Thrift.g:95:1: const_rule : 'const' field_type IDENTIFIER '=' const_value ( list_separator )? -> ^( CONST IDENTIFIER field_type const_value ) ;
public final ThriftParser.const_rule_return const_rule() throws RecognitionException {
ThriftParser.const_rule_return retval = new ThriftParser.const_rule_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal26=null;
Token IDENTIFIER28=null;
Token char_literal29=null;
ParserRuleReturnScope field_type27 =null;
ParserRuleReturnScope const_value30 =null;
ParserRuleReturnScope list_separator31 =null;
Object string_literal26_tree=null;
Object IDENTIFIER28_tree=null;
Object char_literal29_tree=null;
RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_const_value=new RewriteRuleSubtreeStream(adaptor,"rule const_value");
RewriteRuleSubtreeStream stream_field_type=new RewriteRuleSubtreeStream(adaptor,"rule field_type");
try {
// com/facebook/swift/parser/antlr/Thrift.g:96:5: ( 'const' field_type IDENTIFIER '=' const_value ( list_separator )? -> ^( CONST IDENTIFIER field_type const_value ) )
// com/facebook/swift/parser/antlr/Thrift.g:96:7: 'const' field_type IDENTIFIER '=' const_value ( list_separator )?
{
string_literal26=(Token)match(input,64,FOLLOW_64_in_const_rule543);
stream_64.add(string_literal26);
pushFollow(FOLLOW_field_type_in_const_rule545);
field_type27=field_type();
state._fsp--;
stream_field_type.add(field_type27.getTree());
IDENTIFIER28=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_const_rule547);
stream_IDENTIFIER.add(IDENTIFIER28);
char_literal29=(Token)match(input,59,FOLLOW_59_in_const_rule549);
stream_59.add(char_literal29);
pushFollow(FOLLOW_const_value_in_const_rule551);
const_value30=const_value();
state._fsp--;
stream_const_value.add(const_value30.getTree());
// com/facebook/swift/parser/antlr/Thrift.g:96:53: ( list_separator )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==COMMA||LA8_0==57) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:96:53: list_separator
{
pushFollow(FOLLOW_list_separator_in_const_rule553);
list_separator31=list_separator();
state._fsp--;
stream_list_separator.add(list_separator31.getTree());
}
break;
}
// AST REWRITE
// elements: field_type, IDENTIFIER, const_value
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 97:9: -> ^( CONST IDENTIFIER field_type const_value )
{
// com/facebook/swift/parser/antlr/Thrift.g:97:12: ^( CONST IDENTIFIER field_type const_value )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONST, "CONST"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_field_type.nextTree());
adaptor.addChild(root_1, stream_const_value.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "const_rule"
public static class typedef_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typedef"
// com/facebook/swift/parser/antlr/Thrift.g:100:1: typedef : 'typedef' field_type IDENTIFIER ( type_annotations )? -> ^( TYPEDEF IDENTIFIER field_type ) ;
public final ThriftParser.typedef_return typedef() throws RecognitionException {
ThriftParser.typedef_return retval = new ThriftParser.typedef_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal32=null;
Token IDENTIFIER34=null;
ParserRuleReturnScope field_type33 =null;
ParserRuleReturnScope type_annotations35 =null;
Object string_literal32_tree=null;
Object IDENTIFIER34_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84");
RewriteRuleSubtreeStream stream_field_type=new RewriteRuleSubtreeStream(adaptor,"rule field_type");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:101:5: ( 'typedef' field_type IDENTIFIER ( type_annotations )? -> ^( TYPEDEF IDENTIFIER field_type ) )
// com/facebook/swift/parser/antlr/Thrift.g:101:7: 'typedef' field_type IDENTIFIER ( type_annotations )?
{
string_literal32=(Token)match(input,84,FOLLOW_84_in_typedef591);
stream_84.add(string_literal32);
pushFollow(FOLLOW_field_type_in_typedef593);
field_type33=field_type();
state._fsp--;
stream_field_type.add(field_type33.getTree());
IDENTIFIER34=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typedef595);
stream_IDENTIFIER.add(IDENTIFIER34);
// com/facebook/swift/parser/antlr/Thrift.g:101:39: ( type_annotations )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==53) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:101:39: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_typedef597);
type_annotations35=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations35.getTree());
}
break;
}
// AST REWRITE
// elements: field_type, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 101:57: -> ^( TYPEDEF IDENTIFIER field_type )
{
// com/facebook/swift/parser/antlr/Thrift.g:101:60: ^( TYPEDEF IDENTIFIER field_type )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPEDEF, "TYPEDEF"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_field_type.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "typedef"
public static class enum_rule_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enum_rule"
// com/facebook/swift/parser/antlr/Thrift.g:104:1: enum_rule : 'enum' IDENTIFIER '{' ( enum_field )* '}' ( type_annotations )? -> ^( ENUM IDENTIFIER ( enum_field )* ) ;
public final ThriftParser.enum_rule_return enum_rule() throws RecognitionException {
ThriftParser.enum_rule_return retval = new ThriftParser.enum_rule_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal36=null;
Token IDENTIFIER37=null;
Token char_literal38=null;
Token char_literal40=null;
ParserRuleReturnScope enum_field39 =null;
ParserRuleReturnScope type_annotations41 =null;
Object string_literal36_tree=null;
Object IDENTIFIER37_tree=null;
Object char_literal38_tree=null;
Object char_literal40_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_enum_field=new RewriteRuleSubtreeStream(adaptor,"rule enum_field");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:105:5: ( 'enum' IDENTIFIER '{' ( enum_field )* '}' ( type_annotations )? -> ^( ENUM IDENTIFIER ( enum_field )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:105:7: 'enum' IDENTIFIER '{' ( enum_field )* '}' ( type_annotations )?
{
string_literal36=(Token)match(input,68,FOLLOW_68_in_enum_rule625);
stream_68.add(string_literal36);
IDENTIFIER37=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enum_rule627);
stream_IDENTIFIER.add(IDENTIFIER37);
char_literal38=(Token)match(input,87,FOLLOW_87_in_enum_rule629);
stream_87.add(char_literal38);
// com/facebook/swift/parser/antlr/Thrift.g:105:29: ( enum_field )*
loop10:
while (true) {
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==IDENTIFIER) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:105:29: enum_field
{
pushFollow(FOLLOW_enum_field_in_enum_rule631);
enum_field39=enum_field();
state._fsp--;
stream_enum_field.add(enum_field39.getTree());
}
break;
default :
break loop10;
}
}
char_literal40=(Token)match(input,88,FOLLOW_88_in_enum_rule634);
stream_88.add(char_literal40);
// com/facebook/swift/parser/antlr/Thrift.g:105:45: ( type_annotations )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==53) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:105:45: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_enum_rule636);
type_annotations41=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations41.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, enum_field
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 105:63: -> ^( ENUM IDENTIFIER ( enum_field )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:105:66: ^( ENUM IDENTIFIER ( enum_field )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENUM, "ENUM"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:105:84: ( enum_field )*
while ( stream_enum_field.hasNext() ) {
adaptor.addChild(root_1, stream_enum_field.nextTree());
}
stream_enum_field.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "enum_rule"
public static class enum_field_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enum_field"
// com/facebook/swift/parser/antlr/Thrift.g:108:1: enum_field : IDENTIFIER ( '=' integer )? ( type_annotations )? ( list_separator )? -> ^( IDENTIFIER ( integer )? ) ;
public final ThriftParser.enum_field_return enum_field() throws RecognitionException {
ThriftParser.enum_field_return retval = new ThriftParser.enum_field_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER42=null;
Token char_literal43=null;
ParserRuleReturnScope integer44 =null;
ParserRuleReturnScope type_annotations45 =null;
ParserRuleReturnScope list_separator46 =null;
Object IDENTIFIER42_tree=null;
Object char_literal43_tree=null;
RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_integer=new RewriteRuleSubtreeStream(adaptor,"rule integer");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:109:5: ( IDENTIFIER ( '=' integer )? ( type_annotations )? ( list_separator )? -> ^( IDENTIFIER ( integer )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:109:7: IDENTIFIER ( '=' integer )? ( type_annotations )? ( list_separator )?
{
IDENTIFIER42=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enum_field665);
stream_IDENTIFIER.add(IDENTIFIER42);
// com/facebook/swift/parser/antlr/Thrift.g:109:18: ( '=' integer )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==59) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:109:19: '=' integer
{
char_literal43=(Token)match(input,59,FOLLOW_59_in_enum_field668);
stream_59.add(char_literal43);
pushFollow(FOLLOW_integer_in_enum_field670);
integer44=integer();
state._fsp--;
stream_integer.add(integer44.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:109:33: ( type_annotations )?
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==53) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:109:33: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_enum_field674);
type_annotations45=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations45.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:109:51: ( list_separator )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==COMMA||LA14_0==57) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:109:51: list_separator
{
pushFollow(FOLLOW_list_separator_in_enum_field677);
list_separator46=list_separator();
state._fsp--;
stream_list_separator.add(list_separator46.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, integer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 109:67: -> ^( IDENTIFIER ( integer )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:109:70: ^( IDENTIFIER ( integer )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_IDENTIFIER.nextNode(), root_1);
// com/facebook/swift/parser/antlr/Thrift.g:109:83: ( integer )?
if ( stream_integer.hasNext() ) {
adaptor.addChild(root_1, stream_integer.nextTree());
}
stream_integer.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "enum_field"
public static class senum_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "senum"
// com/facebook/swift/parser/antlr/Thrift.g:112:1: senum : 'senum' IDENTIFIER '{' ( LITERAL ( list_separator )? )* '}' ( type_annotations )? -> ^( SENUM IDENTIFIER ( LITERAL )* ) ;
public final ThriftParser.senum_return senum() throws RecognitionException {
ThriftParser.senum_return retval = new ThriftParser.senum_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal47=null;
Token IDENTIFIER48=null;
Token char_literal49=null;
Token LITERAL50=null;
Token char_literal52=null;
ParserRuleReturnScope list_separator51 =null;
ParserRuleReturnScope type_annotations53 =null;
Object string_literal47_tree=null;
Object IDENTIFIER48_tree=null;
Object char_literal49_tree=null;
Object LITERAL50_tree=null;
Object char_literal52_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:113:5: ( 'senum' IDENTIFIER '{' ( LITERAL ( list_separator )? )* '}' ( type_annotations )? -> ^( SENUM IDENTIFIER ( LITERAL )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:113:7: 'senum' IDENTIFIER '{' ( LITERAL ( list_separator )? )* '}' ( type_annotations )?
{
string_literal47=(Token)match(input,79,FOLLOW_79_in_senum704);
stream_79.add(string_literal47);
IDENTIFIER48=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_senum706);
stream_IDENTIFIER.add(IDENTIFIER48);
char_literal49=(Token)match(input,87,FOLLOW_87_in_senum708);
stream_87.add(char_literal49);
// com/facebook/swift/parser/antlr/Thrift.g:113:30: ( LITERAL ( list_separator )? )*
loop16:
while (true) {
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==LITERAL) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:113:31: LITERAL ( list_separator )?
{
LITERAL50=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_senum711);
stream_LITERAL.add(LITERAL50);
// com/facebook/swift/parser/antlr/Thrift.g:113:39: ( list_separator )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==COMMA||LA15_0==57) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:113:39: list_separator
{
pushFollow(FOLLOW_list_separator_in_senum713);
list_separator51=list_separator();
state._fsp--;
stream_list_separator.add(list_separator51.getTree());
}
break;
}
}
break;
default :
break loop16;
}
}
char_literal52=(Token)match(input,88,FOLLOW_88_in_senum718);
stream_88.add(char_literal52);
// com/facebook/swift/parser/antlr/Thrift.g:113:61: ( type_annotations )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==53) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:113:61: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_senum720);
type_annotations53=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations53.getTree());
}
break;
}
// AST REWRITE
// elements: LITERAL, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 113:79: -> ^( SENUM IDENTIFIER ( LITERAL )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:113:82: ^( SENUM IDENTIFIER ( LITERAL )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SENUM, "SENUM"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:113:101: ( LITERAL )*
while ( stream_LITERAL.hasNext() ) {
adaptor.addChild(root_1, stream_LITERAL.nextNode());
}
stream_LITERAL.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "senum"
public static class struct_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "struct"
// com/facebook/swift/parser/antlr/Thrift.g:116:1: struct : 'struct' IDENTIFIER '{' ( field )* '}' ( type_annotations )? -> ^( STRUCT IDENTIFIER ( field )* ( type_annotations )? ) ;
public final ThriftParser.struct_return struct() throws RecognitionException {
ThriftParser.struct_return retval = new ThriftParser.struct_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal54=null;
Token IDENTIFIER55=null;
Token char_literal56=null;
Token char_literal58=null;
ParserRuleReturnScope field57 =null;
ParserRuleReturnScope type_annotations59 =null;
Object string_literal54_tree=null;
Object IDENTIFIER55_tree=null;
Object char_literal56_tree=null;
Object char_literal58_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:117:5: ( 'struct' IDENTIFIER '{' ( field )* '}' ( type_annotations )? -> ^( STRUCT IDENTIFIER ( field )* ( type_annotations )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:117:7: 'struct' IDENTIFIER '{' ( field )* '}' ( type_annotations )?
{
string_literal54=(Token)match(input,82,FOLLOW_82_in_struct749);
stream_82.add(string_literal54);
IDENTIFIER55=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_struct751);
stream_IDENTIFIER.add(IDENTIFIER55);
char_literal56=(Token)match(input,87,FOLLOW_87_in_struct753);
stream_87.add(char_literal56);
// com/facebook/swift/parser/antlr/Thrift.g:117:31: ( field )*
loop18:
while (true) {
int alt18=2;
int LA18_0 = input.LA(1);
if ( ((LA18_0 >= HEX_INTEGER && LA18_0 <= IDENTIFIER)||LA18_0==INTEGER||(LA18_0 >= TYPE_BINARY && LA18_0 <= TYPE_STRING)||(LA18_0 >= 72 && LA18_0 <= 73)||LA18_0==76||LA18_0==78||LA18_0==81) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:117:31: field
{
pushFollow(FOLLOW_field_in_struct755);
field57=field();
state._fsp--;
stream_field.add(field57.getTree());
}
break;
default :
break loop18;
}
}
char_literal58=(Token)match(input,88,FOLLOW_88_in_struct758);
stream_88.add(char_literal58);
// com/facebook/swift/parser/antlr/Thrift.g:117:42: ( type_annotations )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==53) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:117:42: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_struct760);
type_annotations59=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations59.getTree());
}
break;
}
// AST REWRITE
// elements: type_annotations, field, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 117:60: -> ^( STRUCT IDENTIFIER ( field )* ( type_annotations )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:117:63: ^( STRUCT IDENTIFIER ( field )* ( type_annotations )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT, "STRUCT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:117:83: ( field )*
while ( stream_field.hasNext() ) {
adaptor.addChild(root_1, stream_field.nextTree());
}
stream_field.reset();
// com/facebook/swift/parser/antlr/Thrift.g:117:90: ( type_annotations )?
if ( stream_type_annotations.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotations.nextTree());
}
stream_type_annotations.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "struct"
public static class union_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "union"
// com/facebook/swift/parser/antlr/Thrift.g:120:1: union : 'union' IDENTIFIER '{' ( field )* '}' ( type_annotations )? -> ^( UNION IDENTIFIER ( field )* ( type_annotations )? ) ;
public final ThriftParser.union_return union() throws RecognitionException {
ThriftParser.union_return retval = new ThriftParser.union_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal60=null;
Token IDENTIFIER61=null;
Token char_literal62=null;
Token char_literal64=null;
ParserRuleReturnScope field63 =null;
ParserRuleReturnScope type_annotations65 =null;
Object string_literal60_tree=null;
Object IDENTIFIER61_tree=null;
Object char_literal62_tree=null;
Object char_literal64_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:121:5: ( 'union' IDENTIFIER '{' ( field )* '}' ( type_annotations )? -> ^( UNION IDENTIFIER ( field )* ( type_annotations )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:121:7: 'union' IDENTIFIER '{' ( field )* '}' ( type_annotations )?
{
string_literal60=(Token)match(input,85,FOLLOW_85_in_union792);
stream_85.add(string_literal60);
IDENTIFIER61=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_union794);
stream_IDENTIFIER.add(IDENTIFIER61);
char_literal62=(Token)match(input,87,FOLLOW_87_in_union796);
stream_87.add(char_literal62);
// com/facebook/swift/parser/antlr/Thrift.g:121:30: ( field )*
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( ((LA20_0 >= HEX_INTEGER && LA20_0 <= IDENTIFIER)||LA20_0==INTEGER||(LA20_0 >= TYPE_BINARY && LA20_0 <= TYPE_STRING)||(LA20_0 >= 72 && LA20_0 <= 73)||LA20_0==76||LA20_0==78||LA20_0==81) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:121:30: field
{
pushFollow(FOLLOW_field_in_union798);
field63=field();
state._fsp--;
stream_field.add(field63.getTree());
}
break;
default :
break loop20;
}
}
char_literal64=(Token)match(input,88,FOLLOW_88_in_union801);
stream_88.add(char_literal64);
// com/facebook/swift/parser/antlr/Thrift.g:121:41: ( type_annotations )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==53) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:121:41: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_union803);
type_annotations65=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations65.getTree());
}
break;
}
// AST REWRITE
// elements: type_annotations, field, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 121:59: -> ^( UNION IDENTIFIER ( field )* ( type_annotations )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:121:62: ^( UNION IDENTIFIER ( field )* ( type_annotations )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNION, "UNION"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:121:81: ( field )*
while ( stream_field.hasNext() ) {
adaptor.addChild(root_1, stream_field.nextTree());
}
stream_field.reset();
// com/facebook/swift/parser/antlr/Thrift.g:121:88: ( type_annotations )?
if ( stream_type_annotations.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotations.nextTree());
}
stream_type_annotations.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "union"
public static class exception_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exception"
// com/facebook/swift/parser/antlr/Thrift.g:124:1: exception : 'exception' IDENTIFIER '{' ( field )* '}' ( type_annotations )? -> ^( EXCEPTION IDENTIFIER ( field )* ( type_annotations )? ) ;
public final ThriftParser.exception_return exception() throws RecognitionException {
ThriftParser.exception_return retval = new ThriftParser.exception_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal66=null;
Token IDENTIFIER67=null;
Token char_literal68=null;
Token char_literal70=null;
ParserRuleReturnScope field69 =null;
ParserRuleReturnScope type_annotations71 =null;
Object string_literal66_tree=null;
Object IDENTIFIER67_tree=null;
Object char_literal68_tree=null;
Object char_literal70_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:125:5: ( 'exception' IDENTIFIER '{' ( field )* '}' ( type_annotations )? -> ^( EXCEPTION IDENTIFIER ( field )* ( type_annotations )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:125:7: 'exception' IDENTIFIER '{' ( field )* '}' ( type_annotations )?
{
string_literal66=(Token)match(input,69,FOLLOW_69_in_exception835);
stream_69.add(string_literal66);
IDENTIFIER67=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_exception837);
stream_IDENTIFIER.add(IDENTIFIER67);
char_literal68=(Token)match(input,87,FOLLOW_87_in_exception839);
stream_87.add(char_literal68);
// com/facebook/swift/parser/antlr/Thrift.g:125:34: ( field )*
loop22:
while (true) {
int alt22=2;
int LA22_0 = input.LA(1);
if ( ((LA22_0 >= HEX_INTEGER && LA22_0 <= IDENTIFIER)||LA22_0==INTEGER||(LA22_0 >= TYPE_BINARY && LA22_0 <= TYPE_STRING)||(LA22_0 >= 72 && LA22_0 <= 73)||LA22_0==76||LA22_0==78||LA22_0==81) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:125:34: field
{
pushFollow(FOLLOW_field_in_exception841);
field69=field();
state._fsp--;
stream_field.add(field69.getTree());
}
break;
default :
break loop22;
}
}
char_literal70=(Token)match(input,88,FOLLOW_88_in_exception844);
stream_88.add(char_literal70);
// com/facebook/swift/parser/antlr/Thrift.g:125:45: ( type_annotations )?
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==53) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:125:45: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_exception846);
type_annotations71=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations71.getTree());
}
break;
}
// AST REWRITE
// elements: field, type_annotations, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 125:63: -> ^( EXCEPTION IDENTIFIER ( field )* ( type_annotations )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:125:66: ^( EXCEPTION IDENTIFIER ( field )* ( type_annotations )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXCEPTION, "EXCEPTION"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:125:89: ( field )*
while ( stream_field.hasNext() ) {
adaptor.addChild(root_1, stream_field.nextTree());
}
stream_field.reset();
// com/facebook/swift/parser/antlr/Thrift.g:125:96: ( type_annotations )?
if ( stream_type_annotations.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotations.nextTree());
}
stream_type_annotations.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "exception"
public static class service_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "service"
// com/facebook/swift/parser/antlr/Thrift.g:128:1: service : 'service' s= IDENTIFIER ( 'extends' e= IDENTIFIER )? '{' (f= function )* '}' ( type_annotations )? -> ^( SERVICE $s ^( EXTENDS ( $e)? ) ( function )* ( type_annotations )? ) ;
public final ThriftParser.service_return service() throws RecognitionException {
ThriftParser.service_return retval = new ThriftParser.service_return();
retval.start = input.LT(1);
Object root_0 = null;
Token s=null;
Token e=null;
Token string_literal72=null;
Token string_literal73=null;
Token char_literal74=null;
Token char_literal75=null;
ParserRuleReturnScope f =null;
ParserRuleReturnScope type_annotations76 =null;
Object s_tree=null;
Object e_tree=null;
Object string_literal72_tree=null;
Object string_literal73_tree=null;
Object char_literal74_tree=null;
Object char_literal75_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80");
RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_function=new RewriteRuleSubtreeStream(adaptor,"rule function");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:129:5: ( 'service' s= IDENTIFIER ( 'extends' e= IDENTIFIER )? '{' (f= function )* '}' ( type_annotations )? -> ^( SERVICE $s ^( EXTENDS ( $e)? ) ( function )* ( type_annotations )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:129:7: 'service' s= IDENTIFIER ( 'extends' e= IDENTIFIER )? '{' (f= function )* '}' ( type_annotations )?
{
string_literal72=(Token)match(input,80,FOLLOW_80_in_service878);
stream_80.add(string_literal72);
s=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_service882);
stream_IDENTIFIER.add(s);
// com/facebook/swift/parser/antlr/Thrift.g:129:30: ( 'extends' e= IDENTIFIER )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==70) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:129:31: 'extends' e= IDENTIFIER
{
string_literal73=(Token)match(input,70,FOLLOW_70_in_service885);
stream_70.add(string_literal73);
e=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_service889);
stream_IDENTIFIER.add(e);
}
break;
}
char_literal74=(Token)match(input,87,FOLLOW_87_in_service893);
stream_87.add(char_literal74);
// com/facebook/swift/parser/antlr/Thrift.g:129:61: (f= function )*
loop25:
while (true) {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==IDENTIFIER||(LA25_0 >= TYPE_BINARY && LA25_0 <= TYPE_STRING)||LA25_0==63||(LA25_0 >= 72 && LA25_0 <= 73)||LA25_0==75||LA25_0==81||LA25_0==86) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:129:61: f= function
{
pushFollow(FOLLOW_function_in_service897);
f=function();
state._fsp--;
stream_function.add(f.getTree());
}
break;
default :
break loop25;
}
}
char_literal75=(Token)match(input,88,FOLLOW_88_in_service900);
stream_88.add(char_literal75);
// com/facebook/swift/parser/antlr/Thrift.g:129:76: ( type_annotations )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==53) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:129:76: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_service902);
type_annotations76=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations76.getTree());
}
break;
}
// AST REWRITE
// elements: s, e, function, type_annotations
// token labels: s, e
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_s=new RewriteRuleTokenStream(adaptor,"token s",s);
RewriteRuleTokenStream stream_e=new RewriteRuleTokenStream(adaptor,"token e",e);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 129:94: -> ^( SERVICE $s ^( EXTENDS ( $e)? ) ( function )* ( type_annotations )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:129:97: ^( SERVICE $s ^( EXTENDS ( $e)? ) ( function )* ( type_annotations )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SERVICE, "SERVICE"), root_1);
adaptor.addChild(root_1, stream_s.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:129:110: ^( EXTENDS ( $e)? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXTENDS, "EXTENDS"), root_2);
// com/facebook/swift/parser/antlr/Thrift.g:129:121: ( $e)?
if ( stream_e.hasNext() ) {
adaptor.addChild(root_2, stream_e.nextNode());
}
stream_e.reset();
adaptor.addChild(root_1, root_2);
}
// com/facebook/swift/parser/antlr/Thrift.g:129:125: ( function )*
while ( stream_function.hasNext() ) {
adaptor.addChild(root_1, stream_function.nextTree());
}
stream_function.reset();
// com/facebook/swift/parser/antlr/Thrift.g:129:135: ( type_annotations )?
if ( stream_type_annotations.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotations.nextTree());
}
stream_type_annotations.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "service"
public static class field_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "field"
// com/facebook/swift/parser/antlr/Thrift.g:133:1: field : ( field_id )? ( field_req )? field_type IDENTIFIER ( '=' const_value )? ( type_annotations )? ( list_separator )? -> ^( FIELD IDENTIFIER field_type ( field_id )? ^( REQUIREDNESS ( field_req )? ) ( const_value )? ( type_annotations )? ) ;
public final ThriftParser.field_return field() throws RecognitionException {
ThriftParser.field_return retval = new ThriftParser.field_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER80=null;
Token char_literal81=null;
ParserRuleReturnScope field_id77 =null;
ParserRuleReturnScope field_req78 =null;
ParserRuleReturnScope field_type79 =null;
ParserRuleReturnScope const_value82 =null;
ParserRuleReturnScope type_annotations83 =null;
ParserRuleReturnScope list_separator84 =null;
Object IDENTIFIER80_tree=null;
Object char_literal81_tree=null;
RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_field_id=new RewriteRuleSubtreeStream(adaptor,"rule field_id");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_const_value=new RewriteRuleSubtreeStream(adaptor,"rule const_value");
RewriteRuleSubtreeStream stream_field_req=new RewriteRuleSubtreeStream(adaptor,"rule field_req");
RewriteRuleSubtreeStream stream_field_type=new RewriteRuleSubtreeStream(adaptor,"rule field_type");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:134:5: ( ( field_id )? ( field_req )? field_type IDENTIFIER ( '=' const_value )? ( type_annotations )? ( list_separator )? -> ^( FIELD IDENTIFIER field_type ( field_id )? ^( REQUIREDNESS ( field_req )? ) ( const_value )? ( type_annotations )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:134:7: ( field_id )? ( field_req )? field_type IDENTIFIER ( '=' const_value )? ( type_annotations )? ( list_separator )?
{
// com/facebook/swift/parser/antlr/Thrift.g:134:7: ( field_id )?
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==HEX_INTEGER||LA27_0==INTEGER) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:134:7: field_id
{
pushFollow(FOLLOW_field_id_in_field944);
field_id77=field_id();
state._fsp--;
stream_field_id.add(field_id77.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:134:17: ( field_req )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==76||LA28_0==78) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:134:17: field_req
{
pushFollow(FOLLOW_field_req_in_field947);
field_req78=field_req();
state._fsp--;
stream_field_req.add(field_req78.getTree());
}
break;
}
pushFollow(FOLLOW_field_type_in_field950);
field_type79=field_type();
state._fsp--;
stream_field_type.add(field_type79.getTree());
IDENTIFIER80=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_field952);
stream_IDENTIFIER.add(IDENTIFIER80);
// com/facebook/swift/parser/antlr/Thrift.g:134:50: ( '=' const_value )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==59) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:134:51: '=' const_value
{
char_literal81=(Token)match(input,59,FOLLOW_59_in_field955);
stream_59.add(char_literal81);
pushFollow(FOLLOW_const_value_in_field957);
const_value82=const_value();
state._fsp--;
stream_const_value.add(const_value82.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:134:69: ( type_annotations )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==53) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:134:69: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_field961);
type_annotations83=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations83.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:134:87: ( list_separator )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==COMMA||LA31_0==57) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:134:87: list_separator
{
pushFollow(FOLLOW_list_separator_in_field964);
list_separator84=list_separator();
state._fsp--;
stream_list_separator.add(list_separator84.getTree());
}
break;
}
// AST REWRITE
// elements: field_id, field_req, field_type, const_value, type_annotations, IDENTIFIER
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 135:9: -> ^( FIELD IDENTIFIER field_type ( field_id )? ^( REQUIREDNESS ( field_req )? ) ( const_value )? ( type_annotations )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:135:12: ^( FIELD IDENTIFIER field_type ( field_id )? ^( REQUIREDNESS ( field_req )? ) ( const_value )? ( type_annotations )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD, "FIELD"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_field_type.nextTree());
// com/facebook/swift/parser/antlr/Thrift.g:135:42: ( field_id )?
if ( stream_field_id.hasNext() ) {
adaptor.addChild(root_1, stream_field_id.nextTree());
}
stream_field_id.reset();
// com/facebook/swift/parser/antlr/Thrift.g:135:52: ^( REQUIREDNESS ( field_req )? )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(REQUIREDNESS, "REQUIREDNESS"), root_2);
// com/facebook/swift/parser/antlr/Thrift.g:135:67: ( field_req )?
if ( stream_field_req.hasNext() ) {
adaptor.addChild(root_2, stream_field_req.nextTree());
}
stream_field_req.reset();
adaptor.addChild(root_1, root_2);
}
// com/facebook/swift/parser/antlr/Thrift.g:135:79: ( const_value )?
if ( stream_const_value.hasNext() ) {
adaptor.addChild(root_1, stream_const_value.nextTree());
}
stream_const_value.reset();
// com/facebook/swift/parser/antlr/Thrift.g:135:92: ( type_annotations )?
if ( stream_type_annotations.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotations.nextTree());
}
stream_type_annotations.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 field_id_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "field_id"
// com/facebook/swift/parser/antlr/Thrift.g:138:1: field_id : integer ':' -> integer ;
public final ThriftParser.field_id_return field_id() throws RecognitionException {
ThriftParser.field_id_return retval = new ThriftParser.field_id_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal86=null;
ParserRuleReturnScope integer85 =null;
Object char_literal86_tree=null;
RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56");
RewriteRuleSubtreeStream stream_integer=new RewriteRuleSubtreeStream(adaptor,"rule integer");
try {
// com/facebook/swift/parser/antlr/Thrift.g:139:5: ( integer ':' -> integer )
// com/facebook/swift/parser/antlr/Thrift.g:139:7: integer ':'
{
pushFollow(FOLLOW_integer_in_field_id1016);
integer85=integer();
state._fsp--;
stream_integer.add(integer85.getTree());
char_literal86=(Token)match(input,56,FOLLOW_56_in_field_id1018);
stream_56.add(char_literal86);
// AST REWRITE
// elements: integer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 139:19: -> integer
{
adaptor.addChild(root_0, stream_integer.nextTree());
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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_id"
public static class field_req_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "field_req"
// com/facebook/swift/parser/antlr/Thrift.g:142:1: field_req : ( 'required' -> REQUIRED | 'optional' -> OPTIONAL );
public final ThriftParser.field_req_return field_req() throws RecognitionException {
ThriftParser.field_req_return retval = new ThriftParser.field_req_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal87=null;
Token string_literal88=null;
Object string_literal87_tree=null;
Object string_literal88_tree=null;
RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78");
RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76");
try {
// com/facebook/swift/parser/antlr/Thrift.g:143:5: ( 'required' -> REQUIRED | 'optional' -> OPTIONAL )
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==78) ) {
alt32=1;
}
else if ( (LA32_0==76) ) {
alt32=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:143:7: 'required'
{
string_literal87=(Token)match(input,78,FOLLOW_78_in_field_req1039);
stream_78.add(string_literal87);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 143:18: -> REQUIRED
{
adaptor.addChild(root_0, (Object)adaptor.create(REQUIRED, "REQUIRED"));
}
retval.tree = root_0;
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:144:7: 'optional'
{
string_literal88=(Token)match(input,76,FOLLOW_76_in_field_req1051);
stream_76.add(string_literal88);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 144:18: -> OPTIONAL
{
adaptor.addChild(root_0, (Object)adaptor.create(OPTIONAL, "OPTIONAL"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
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_req"
public static class function_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "function"
// com/facebook/swift/parser/antlr/Thrift.g:148:1: function : ( oneway )? function_type IDENTIFIER '(' ( field )* ')' ( throws_list )? ( type_annotations )? ( list_separator )? -> ^( METHOD IDENTIFIER function_type ^( ARGS ( field )* ) ( oneway )? ( throws_list )? ( type_annotations )? ) ;
public final ThriftParser.function_return function() throws RecognitionException {
ThriftParser.function_return retval = new ThriftParser.function_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER91=null;
Token char_literal92=null;
Token char_literal94=null;
ParserRuleReturnScope oneway89 =null;
ParserRuleReturnScope function_type90 =null;
ParserRuleReturnScope field93 =null;
ParserRuleReturnScope throws_list95 =null;
ParserRuleReturnScope type_annotations96 =null;
ParserRuleReturnScope list_separator97 =null;
Object IDENTIFIER91_tree=null;
Object char_literal92_tree=null;
Object char_literal94_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53");
RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_throws_list=new RewriteRuleSubtreeStream(adaptor,"rule throws_list");
RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
RewriteRuleSubtreeStream stream_function_type=new RewriteRuleSubtreeStream(adaptor,"rule function_type");
RewriteRuleSubtreeStream stream_oneway=new RewriteRuleSubtreeStream(adaptor,"rule oneway");
RewriteRuleSubtreeStream stream_type_annotations=new RewriteRuleSubtreeStream(adaptor,"rule type_annotations");
try {
// com/facebook/swift/parser/antlr/Thrift.g:149:5: ( ( oneway )? function_type IDENTIFIER '(' ( field )* ')' ( throws_list )? ( type_annotations )? ( list_separator )? -> ^( METHOD IDENTIFIER function_type ^( ARGS ( field )* ) ( oneway )? ( throws_list )? ( type_annotations )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:149:7: ( oneway )? function_type IDENTIFIER '(' ( field )* ')' ( throws_list )? ( type_annotations )? ( list_separator )?
{
// com/facebook/swift/parser/antlr/Thrift.g:149:7: ( oneway )?
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==63||LA33_0==75) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:149:7: oneway
{
pushFollow(FOLLOW_oneway_in_function1073);
oneway89=oneway();
state._fsp--;
stream_oneway.add(oneway89.getTree());
}
break;
}
pushFollow(FOLLOW_function_type_in_function1076);
function_type90=function_type();
state._fsp--;
stream_function_type.add(function_type90.getTree());
IDENTIFIER91=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function1078);
stream_IDENTIFIER.add(IDENTIFIER91);
char_literal92=(Token)match(input,53,FOLLOW_53_in_function1080);
stream_53.add(char_literal92);
// com/facebook/swift/parser/antlr/Thrift.g:149:44: ( field )*
loop34:
while (true) {
int alt34=2;
int LA34_0 = input.LA(1);
if ( ((LA34_0 >= HEX_INTEGER && LA34_0 <= IDENTIFIER)||LA34_0==INTEGER||(LA34_0 >= TYPE_BINARY && LA34_0 <= TYPE_STRING)||(LA34_0 >= 72 && LA34_0 <= 73)||LA34_0==76||LA34_0==78||LA34_0==81) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:149:44: field
{
pushFollow(FOLLOW_field_in_function1082);
field93=field();
state._fsp--;
stream_field.add(field93.getTree());
}
break;
default :
break loop34;
}
}
char_literal94=(Token)match(input,54,FOLLOW_54_in_function1085);
stream_54.add(char_literal94);
// com/facebook/swift/parser/antlr/Thrift.g:149:55: ( throws_list )?
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==83) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:149:55: throws_list
{
pushFollow(FOLLOW_throws_list_in_function1087);
throws_list95=throws_list();
state._fsp--;
stream_throws_list.add(throws_list95.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:149:68: ( type_annotations )?
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==53) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:149:68: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_function1090);
type_annotations96=type_annotations();
state._fsp--;
stream_type_annotations.add(type_annotations96.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:149:86: ( list_separator )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==COMMA||LA37_0==57) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:149:86: list_separator
{
pushFollow(FOLLOW_list_separator_in_function1093);
list_separator97=list_separator();
state._fsp--;
stream_list_separator.add(list_separator97.getTree());
}
break;
}
// AST REWRITE
// elements: throws_list, oneway, field, type_annotations, IDENTIFIER, function_type
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 150:9: -> ^( METHOD IDENTIFIER function_type ^( ARGS ( field )* ) ( oneway )? ( throws_list )? ( type_annotations )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:150:12: ^( METHOD IDENTIFIER function_type ^( ARGS ( field )* ) ( oneway )? ( throws_list )? ( type_annotations )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(METHOD, "METHOD"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_function_type.nextTree());
// com/facebook/swift/parser/antlr/Thrift.g:150:46: ^( ARGS ( field )* )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGS, "ARGS"), root_2);
// com/facebook/swift/parser/antlr/Thrift.g:150:53: ( field )*
while ( stream_field.hasNext() ) {
adaptor.addChild(root_2, stream_field.nextTree());
}
stream_field.reset();
adaptor.addChild(root_1, root_2);
}
// com/facebook/swift/parser/antlr/Thrift.g:150:61: ( oneway )?
if ( stream_oneway.hasNext() ) {
adaptor.addChild(root_1, stream_oneway.nextTree());
}
stream_oneway.reset();
// com/facebook/swift/parser/antlr/Thrift.g:150:69: ( throws_list )?
if ( stream_throws_list.hasNext() ) {
adaptor.addChild(root_1, stream_throws_list.nextTree());
}
stream_throws_list.reset();
// com/facebook/swift/parser/antlr/Thrift.g:150:82: ( type_annotations )?
if ( stream_type_annotations.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotations.nextTree());
}
stream_type_annotations.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "function"
public static class oneway_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "oneway"
// com/facebook/swift/parser/antlr/Thrift.g:153:1: oneway : ( 'oneway' | 'async' ) -> ONEWAY ;
public final ThriftParser.oneway_return oneway() throws RecognitionException {
ThriftParser.oneway_return retval = new ThriftParser.oneway_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal98=null;
Token string_literal99=null;
Object string_literal98_tree=null;
Object string_literal99_tree=null;
RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63");
RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75");
try {
// com/facebook/swift/parser/antlr/Thrift.g:154:5: ( ( 'oneway' | 'async' ) -> ONEWAY )
// com/facebook/swift/parser/antlr/Thrift.g:154:7: ( 'oneway' | 'async' )
{
// com/facebook/swift/parser/antlr/Thrift.g:154:7: ( 'oneway' | 'async' )
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==75) ) {
alt38=1;
}
else if ( (LA38_0==63) ) {
alt38=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:154:8: 'oneway'
{
string_literal98=(Token)match(input,75,FOLLOW_75_in_oneway1146);
stream_75.add(string_literal98);
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:154:19: 'async'
{
string_literal99=(Token)match(input,63,FOLLOW_63_in_oneway1150);
stream_63.add(string_literal99);
}
break;
}
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 154:28: -> ONEWAY
{
adaptor.addChild(root_0, (Object)adaptor.create(ONEWAY, "ONEWAY"));
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "oneway"
public static class function_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "function_type"
// com/facebook/swift/parser/antlr/Thrift.g:157:1: function_type : ( field_type | 'void' -> VOID );
public final ThriftParser.function_type_return function_type() throws RecognitionException {
ThriftParser.function_type_return retval = new ThriftParser.function_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal101=null;
ParserRuleReturnScope field_type100 =null;
Object string_literal101_tree=null;
RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86");
try {
// com/facebook/swift/parser/antlr/Thrift.g:158:5: ( field_type | 'void' -> VOID )
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==IDENTIFIER||(LA39_0 >= TYPE_BINARY && LA39_0 <= TYPE_STRING)||(LA39_0 >= 72 && LA39_0 <= 73)||LA39_0==81) ) {
alt39=1;
}
else if ( (LA39_0==86) ) {
alt39=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 39, 0, input);
throw nvae;
}
switch (alt39) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:158:7: field_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_field_type_in_function_type1172);
field_type100=field_type();
state._fsp--;
adaptor.addChild(root_0, field_type100.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:159:7: 'void'
{
string_literal101=(Token)match(input,86,FOLLOW_86_in_function_type1180);
stream_86.add(string_literal101);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 159:14: -> VOID
{
adaptor.addChild(root_0, (Object)adaptor.create(VOID, "VOID"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
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 "function_type"
public static class throws_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "throws_list"
// com/facebook/swift/parser/antlr/Thrift.g:162:1: throws_list : 'throws' '(' ( field )* ')' -> ^( THROWS ( field )* ) ;
public final ThriftParser.throws_list_return throws_list() throws RecognitionException {
ThriftParser.throws_list_return retval = new ThriftParser.throws_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal102=null;
Token char_literal103=null;
Token char_literal105=null;
ParserRuleReturnScope field104 =null;
Object string_literal102_tree=null;
Object char_literal103_tree=null;
Object char_literal105_tree=null;
RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83");
RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53");
RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54");
RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
try {
// com/facebook/swift/parser/antlr/Thrift.g:163:5: ( 'throws' '(' ( field )* ')' -> ^( THROWS ( field )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:163:7: 'throws' '(' ( field )* ')'
{
string_literal102=(Token)match(input,83,FOLLOW_83_in_throws_list1201);
stream_83.add(string_literal102);
char_literal103=(Token)match(input,53,FOLLOW_53_in_throws_list1203);
stream_53.add(char_literal103);
// com/facebook/swift/parser/antlr/Thrift.g:163:20: ( field )*
loop40:
while (true) {
int alt40=2;
int LA40_0 = input.LA(1);
if ( ((LA40_0 >= HEX_INTEGER && LA40_0 <= IDENTIFIER)||LA40_0==INTEGER||(LA40_0 >= TYPE_BINARY && LA40_0 <= TYPE_STRING)||(LA40_0 >= 72 && LA40_0 <= 73)||LA40_0==76||LA40_0==78||LA40_0==81) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:163:20: field
{
pushFollow(FOLLOW_field_in_throws_list1205);
field104=field();
state._fsp--;
stream_field.add(field104.getTree());
}
break;
default :
break loop40;
}
}
char_literal105=(Token)match(input,54,FOLLOW_54_in_throws_list1208);
stream_54.add(char_literal105);
// AST REWRITE
// elements: field
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 163:31: -> ^( THROWS ( field )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:163:34: ^( THROWS ( field )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(THROWS, "THROWS"), root_1);
// com/facebook/swift/parser/antlr/Thrift.g:163:43: ( field )*
while ( stream_field.hasNext() ) {
adaptor.addChild(root_1, stream_field.nextTree());
}
stream_field.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "throws_list"
public static class type_annotations_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "type_annotations"
// com/facebook/swift/parser/antlr/Thrift.g:167:1: type_annotations : '(' ( type_annotation )* ')' -> ^( TYPES ( type_annotation )* ) ;
public final ThriftParser.type_annotations_return type_annotations() throws RecognitionException {
ThriftParser.type_annotations_return retval = new ThriftParser.type_annotations_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal106=null;
Token char_literal108=null;
ParserRuleReturnScope type_annotation107 =null;
Object char_literal106_tree=null;
Object char_literal108_tree=null;
RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53");
RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54");
RewriteRuleSubtreeStream stream_type_annotation=new RewriteRuleSubtreeStream(adaptor,"rule type_annotation");
try {
// com/facebook/swift/parser/antlr/Thrift.g:168:5: ( '(' ( type_annotation )* ')' -> ^( TYPES ( type_annotation )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:168:7: '(' ( type_annotation )* ')'
{
char_literal106=(Token)match(input,53,FOLLOW_53_in_type_annotations1235);
stream_53.add(char_literal106);
// com/facebook/swift/parser/antlr/Thrift.g:168:11: ( type_annotation )*
loop41:
while (true) {
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==IDENTIFIER) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:168:11: type_annotation
{
pushFollow(FOLLOW_type_annotation_in_type_annotations1237);
type_annotation107=type_annotation();
state._fsp--;
stream_type_annotation.add(type_annotation107.getTree());
}
break;
default :
break loop41;
}
}
char_literal108=(Token)match(input,54,FOLLOW_54_in_type_annotations1240);
stream_54.add(char_literal108);
// AST REWRITE
// elements: type_annotation
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 168:32: -> ^( TYPES ( type_annotation )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:168:35: ^( TYPES ( type_annotation )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPES, "TYPES"), root_1);
// com/facebook/swift/parser/antlr/Thrift.g:168:43: ( type_annotation )*
while ( stream_type_annotation.hasNext() ) {
adaptor.addChild(root_1, stream_type_annotation.nextTree());
}
stream_type_annotation.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "type_annotations"
public static class type_annotation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "type_annotation"
// com/facebook/swift/parser/antlr/Thrift.g:171:1: type_annotation : IDENTIFIER ( '=' annotation_value )? ( list_separator )? -> ^( TYPE IDENTIFIER ( annotation_value )? ) ;
public final ThriftParser.type_annotation_return type_annotation() throws RecognitionException {
ThriftParser.type_annotation_return retval = new ThriftParser.type_annotation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER109=null;
Token char_literal110=null;
ParserRuleReturnScope annotation_value111 =null;
ParserRuleReturnScope list_separator112 =null;
Object IDENTIFIER109_tree=null;
Object char_literal110_tree=null;
RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_annotation_value=new RewriteRuleSubtreeStream(adaptor,"rule annotation_value");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
try {
// com/facebook/swift/parser/antlr/Thrift.g:172:5: ( IDENTIFIER ( '=' annotation_value )? ( list_separator )? -> ^( TYPE IDENTIFIER ( annotation_value )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:172:7: IDENTIFIER ( '=' annotation_value )? ( list_separator )?
{
IDENTIFIER109=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_annotation1266);
stream_IDENTIFIER.add(IDENTIFIER109);
// com/facebook/swift/parser/antlr/Thrift.g:172:18: ( '=' annotation_value )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==59) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:172:19: '=' annotation_value
{
char_literal110=(Token)match(input,59,FOLLOW_59_in_type_annotation1269);
stream_59.add(char_literal110);
pushFollow(FOLLOW_annotation_value_in_type_annotation1271);
annotation_value111=annotation_value();
state._fsp--;
stream_annotation_value.add(annotation_value111.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:172:42: ( list_separator )?
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==COMMA||LA43_0==57) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:172:42: list_separator
{
pushFollow(FOLLOW_list_separator_in_type_annotation1275);
list_separator112=list_separator();
state._fsp--;
stream_list_separator.add(list_separator112.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, annotation_value
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 172:58: -> ^( TYPE IDENTIFIER ( annotation_value )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:172:61: ^( TYPE IDENTIFIER ( annotation_value )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE, "TYPE"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// com/facebook/swift/parser/antlr/Thrift.g:172:79: ( annotation_value )?
if ( stream_annotation_value.hasNext() ) {
adaptor.addChild(root_1, stream_annotation_value.nextTree());
}
stream_annotation_value.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "type_annotation"
public static class annotation_value_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "annotation_value"
// com/facebook/swift/parser/antlr/Thrift.g:175:1: annotation_value : ( integer | LITERAL );
public final ThriftParser.annotation_value_return annotation_value() throws RecognitionException {
ThriftParser.annotation_value_return retval = new ThriftParser.annotation_value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LITERAL114=null;
ParserRuleReturnScope integer113 =null;
Object LITERAL114_tree=null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:176:5: ( integer | LITERAL )
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==HEX_INTEGER||LA44_0==INTEGER) ) {
alt44=1;
}
else if ( (LA44_0==LITERAL) ) {
alt44=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:176:7: integer
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_integer_in_annotation_value1304);
integer113=integer();
state._fsp--;
adaptor.addChild(root_0, integer113.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:176:17: LITERAL
{
root_0 = (Object)adaptor.nil();
LITERAL114=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_annotation_value1308);
LITERAL114_tree = (Object)adaptor.create(LITERAL114);
adaptor.addChild(root_0, LITERAL114_tree);
}
break;
}
retval.stop = input.LT(-1);
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 "annotation_value"
public static class field_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "field_type"
// com/facebook/swift/parser/antlr/Thrift.g:180:1: field_type : ( base_type | IDENTIFIER | container_type );
public final ThriftParser.field_type_return field_type() throws RecognitionException {
ThriftParser.field_type_return retval = new ThriftParser.field_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER116=null;
ParserRuleReturnScope base_type115 =null;
ParserRuleReturnScope container_type117 =null;
Object IDENTIFIER116_tree=null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:181:5: ( base_type | IDENTIFIER | container_type )
int alt45=3;
switch ( input.LA(1) ) {
case TYPE_BINARY:
case TYPE_BOOL:
case TYPE_BYTE:
case TYPE_DOUBLE:
case TYPE_I16:
case TYPE_I32:
case TYPE_I64:
case TYPE_STRING:
{
alt45=1;
}
break;
case IDENTIFIER:
{
alt45=2;
}
break;
case 72:
case 73:
case 81:
{
alt45=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:181:7: base_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_base_type_in_field_type1326);
base_type115=base_type();
state._fsp--;
adaptor.addChild(root_0, base_type115.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:181:19: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER116=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_field_type1330);
IDENTIFIER116_tree = (Object)adaptor.create(IDENTIFIER116);
adaptor.addChild(root_0, IDENTIFIER116_tree);
}
break;
case 3 :
// com/facebook/swift/parser/antlr/Thrift.g:181:32: container_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_container_type_in_field_type1334);
container_type117=container_type();
state._fsp--;
adaptor.addChild(root_0, container_type117.getTree());
}
break;
}
retval.stop = input.LT(-1);
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_type"
public static class base_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "base_type"
// com/facebook/swift/parser/antlr/Thrift.g:184:1: base_type : real_base_type ( type_annotations )? ;
public final ThriftParser.base_type_return base_type() throws RecognitionException {
ThriftParser.base_type_return retval = new ThriftParser.base_type_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope real_base_type118 =null;
ParserRuleReturnScope type_annotations119 =null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:185:5: ( real_base_type ( type_annotations )? )
// com/facebook/swift/parser/antlr/Thrift.g:185:7: real_base_type ( type_annotations )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_real_base_type_in_base_type1351);
real_base_type118=real_base_type();
state._fsp--;
adaptor.addChild(root_0, real_base_type118.getTree());
// com/facebook/swift/parser/antlr/Thrift.g:185:22: ( type_annotations )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==53) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:185:22: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_base_type1353);
type_annotations119=type_annotations();
state._fsp--;
adaptor.addChild(root_0, type_annotations119.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
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 "base_type"
public static class container_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "container_type"
// com/facebook/swift/parser/antlr/Thrift.g:188:1: container_type : ( map_type | set_type | list_type ) ( type_annotations )? ;
public final ThriftParser.container_type_return container_type() throws RecognitionException {
ThriftParser.container_type_return retval = new ThriftParser.container_type_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope map_type120 =null;
ParserRuleReturnScope set_type121 =null;
ParserRuleReturnScope list_type122 =null;
ParserRuleReturnScope type_annotations123 =null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:189:5: ( ( map_type | set_type | list_type ) ( type_annotations )? )
// com/facebook/swift/parser/antlr/Thrift.g:189:7: ( map_type | set_type | list_type ) ( type_annotations )?
{
root_0 = (Object)adaptor.nil();
// com/facebook/swift/parser/antlr/Thrift.g:189:7: ( map_type | set_type | list_type )
int alt47=3;
switch ( input.LA(1) ) {
case 73:
{
alt47=1;
}
break;
case 81:
{
alt47=2;
}
break;
case 72:
{
alt47=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:189:8: map_type
{
pushFollow(FOLLOW_map_type_in_container_type1372);
map_type120=map_type();
state._fsp--;
adaptor.addChild(root_0, map_type120.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:189:19: set_type
{
pushFollow(FOLLOW_set_type_in_container_type1376);
set_type121=set_type();
state._fsp--;
adaptor.addChild(root_0, set_type121.getTree());
}
break;
case 3 :
// com/facebook/swift/parser/antlr/Thrift.g:189:30: list_type
{
pushFollow(FOLLOW_list_type_in_container_type1380);
list_type122=list_type();
state._fsp--;
adaptor.addChild(root_0, list_type122.getTree());
}
break;
}
// com/facebook/swift/parser/antlr/Thrift.g:189:41: ( type_annotations )?
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==53) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:189:41: type_annotations
{
pushFollow(FOLLOW_type_annotations_in_container_type1383);
type_annotations123=type_annotations();
state._fsp--;
adaptor.addChild(root_0, type_annotations123.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
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 "container_type"
public static class map_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "map_type"
// com/facebook/swift/parser/antlr/Thrift.g:192:1: map_type : 'map' ( cpp_type )? '<' field_type COMMA field_type '>' -> ^( MAP field_type field_type ( cpp_type )? ) ;
public final ThriftParser.map_type_return map_type() throws RecognitionException {
ThriftParser.map_type_return retval = new ThriftParser.map_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal124=null;
Token char_literal126=null;
Token COMMA128=null;
Token char_literal130=null;
ParserRuleReturnScope cpp_type125 =null;
ParserRuleReturnScope field_type127 =null;
ParserRuleReturnScope field_type129 =null;
Object string_literal124_tree=null;
Object char_literal126_tree=null;
Object COMMA128_tree=null;
Object char_literal130_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58");
RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60");
RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73");
RewriteRuleSubtreeStream stream_cpp_type=new RewriteRuleSubtreeStream(adaptor,"rule cpp_type");
RewriteRuleSubtreeStream stream_field_type=new RewriteRuleSubtreeStream(adaptor,"rule field_type");
try {
// com/facebook/swift/parser/antlr/Thrift.g:193:5: ( 'map' ( cpp_type )? '<' field_type COMMA field_type '>' -> ^( MAP field_type field_type ( cpp_type )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:193:7: 'map' ( cpp_type )? '<' field_type COMMA field_type '>'
{
string_literal124=(Token)match(input,73,FOLLOW_73_in_map_type1401);
stream_73.add(string_literal124);
// com/facebook/swift/parser/antlr/Thrift.g:193:13: ( cpp_type )?
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==67) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:193:13: cpp_type
{
pushFollow(FOLLOW_cpp_type_in_map_type1403);
cpp_type125=cpp_type();
state._fsp--;
stream_cpp_type.add(cpp_type125.getTree());
}
break;
}
char_literal126=(Token)match(input,58,FOLLOW_58_in_map_type1406);
stream_58.add(char_literal126);
pushFollow(FOLLOW_field_type_in_map_type1408);
field_type127=field_type();
state._fsp--;
stream_field_type.add(field_type127.getTree());
COMMA128=(Token)match(input,COMMA,FOLLOW_COMMA_in_map_type1410);
stream_COMMA.add(COMMA128);
pushFollow(FOLLOW_field_type_in_map_type1412);
field_type129=field_type();
state._fsp--;
stream_field_type.add(field_type129.getTree());
char_literal130=(Token)match(input,60,FOLLOW_60_in_map_type1414);
stream_60.add(char_literal130);
// AST REWRITE
// elements: cpp_type, field_type, field_type
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 193:59: -> ^( MAP field_type field_type ( cpp_type )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:193:62: ^( MAP field_type field_type ( cpp_type )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MAP, "MAP"), root_1);
adaptor.addChild(root_1, stream_field_type.nextTree());
adaptor.addChild(root_1, stream_field_type.nextTree());
// com/facebook/swift/parser/antlr/Thrift.g:193:90: ( cpp_type )?
if ( stream_cpp_type.hasNext() ) {
adaptor.addChild(root_1, stream_cpp_type.nextTree());
}
stream_cpp_type.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "map_type"
public static class set_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "set_type"
// com/facebook/swift/parser/antlr/Thrift.g:196:1: set_type : 'set' ( cpp_type )? '<' field_type '>' -> ^( SET field_type ( cpp_type )? ) ;
public final ThriftParser.set_type_return set_type() throws RecognitionException {
ThriftParser.set_type_return retval = new ThriftParser.set_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal131=null;
Token char_literal133=null;
Token char_literal135=null;
ParserRuleReturnScope cpp_type132 =null;
ParserRuleReturnScope field_type134 =null;
Object string_literal131_tree=null;
Object char_literal133_tree=null;
Object char_literal135_tree=null;
RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58");
RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81");
RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60");
RewriteRuleSubtreeStream stream_cpp_type=new RewriteRuleSubtreeStream(adaptor,"rule cpp_type");
RewriteRuleSubtreeStream stream_field_type=new RewriteRuleSubtreeStream(adaptor,"rule field_type");
try {
// com/facebook/swift/parser/antlr/Thrift.g:197:5: ( 'set' ( cpp_type )? '<' field_type '>' -> ^( SET field_type ( cpp_type )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:197:7: 'set' ( cpp_type )? '<' field_type '>'
{
string_literal131=(Token)match(input,81,FOLLOW_81_in_set_type1444);
stream_81.add(string_literal131);
// com/facebook/swift/parser/antlr/Thrift.g:197:13: ( cpp_type )?
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==67) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:197:13: cpp_type
{
pushFollow(FOLLOW_cpp_type_in_set_type1446);
cpp_type132=cpp_type();
state._fsp--;
stream_cpp_type.add(cpp_type132.getTree());
}
break;
}
char_literal133=(Token)match(input,58,FOLLOW_58_in_set_type1449);
stream_58.add(char_literal133);
pushFollow(FOLLOW_field_type_in_set_type1451);
field_type134=field_type();
state._fsp--;
stream_field_type.add(field_type134.getTree());
char_literal135=(Token)match(input,60,FOLLOW_60_in_set_type1453);
stream_60.add(char_literal135);
// AST REWRITE
// elements: cpp_type, field_type
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 197:42: -> ^( SET field_type ( cpp_type )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:197:45: ^( SET field_type ( cpp_type )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SET, "SET"), root_1);
adaptor.addChild(root_1, stream_field_type.nextTree());
// com/facebook/swift/parser/antlr/Thrift.g:197:62: ( cpp_type )?
if ( stream_cpp_type.hasNext() ) {
adaptor.addChild(root_1, stream_cpp_type.nextTree());
}
stream_cpp_type.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "set_type"
public static class list_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "list_type"
// com/facebook/swift/parser/antlr/Thrift.g:200:1: list_type : 'list' '<' field_type '>' ( cpp_type )? -> ^( LIST field_type ( cpp_type )? ) ;
public final ThriftParser.list_type_return list_type() throws RecognitionException {
ThriftParser.list_type_return retval = new ThriftParser.list_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal136=null;
Token char_literal137=null;
Token char_literal139=null;
ParserRuleReturnScope field_type138 =null;
ParserRuleReturnScope cpp_type140 =null;
Object string_literal136_tree=null;
Object char_literal137_tree=null;
Object char_literal139_tree=null;
RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58");
RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60");
RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72");
RewriteRuleSubtreeStream stream_cpp_type=new RewriteRuleSubtreeStream(adaptor,"rule cpp_type");
RewriteRuleSubtreeStream stream_field_type=new RewriteRuleSubtreeStream(adaptor,"rule field_type");
try {
// com/facebook/swift/parser/antlr/Thrift.g:201:5: ( 'list' '<' field_type '>' ( cpp_type )? -> ^( LIST field_type ( cpp_type )? ) )
// com/facebook/swift/parser/antlr/Thrift.g:201:7: 'list' '<' field_type '>' ( cpp_type )?
{
string_literal136=(Token)match(input,72,FOLLOW_72_in_list_type1481);
stream_72.add(string_literal136);
char_literal137=(Token)match(input,58,FOLLOW_58_in_list_type1483);
stream_58.add(char_literal137);
pushFollow(FOLLOW_field_type_in_list_type1485);
field_type138=field_type();
state._fsp--;
stream_field_type.add(field_type138.getTree());
char_literal139=(Token)match(input,60,FOLLOW_60_in_list_type1487);
stream_60.add(char_literal139);
// com/facebook/swift/parser/antlr/Thrift.g:201:33: ( cpp_type )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==67) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:201:33: cpp_type
{
pushFollow(FOLLOW_cpp_type_in_list_type1489);
cpp_type140=cpp_type();
state._fsp--;
stream_cpp_type.add(cpp_type140.getTree());
}
break;
}
// AST REWRITE
// elements: cpp_type, field_type
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 201:43: -> ^( LIST field_type ( cpp_type )? )
{
// com/facebook/swift/parser/antlr/Thrift.g:201:46: ^( LIST field_type ( cpp_type )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LIST, "LIST"), root_1);
adaptor.addChild(root_1, stream_field_type.nextTree());
// com/facebook/swift/parser/antlr/Thrift.g:201:64: ( cpp_type )?
if ( stream_cpp_type.hasNext() ) {
adaptor.addChild(root_1, stream_cpp_type.nextTree());
}
stream_cpp_type.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "list_type"
public static class cpp_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "cpp_type"
// com/facebook/swift/parser/antlr/Thrift.g:204:1: cpp_type : 'cpp_type' LITERAL -> ^( CPP_TYPE LITERAL ) ;
public final ThriftParser.cpp_type_return cpp_type() throws RecognitionException {
ThriftParser.cpp_type_return retval = new ThriftParser.cpp_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal141=null;
Token LITERAL142=null;
Object string_literal141_tree=null;
Object LITERAL142_tree=null;
RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
try {
// com/facebook/swift/parser/antlr/Thrift.g:205:5: ( 'cpp_type' LITERAL -> ^( CPP_TYPE LITERAL ) )
// com/facebook/swift/parser/antlr/Thrift.g:205:7: 'cpp_type' LITERAL
{
string_literal141=(Token)match(input,67,FOLLOW_67_in_cpp_type1518);
stream_67.add(string_literal141);
LITERAL142=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_cpp_type1520);
stream_LITERAL.add(LITERAL142);
// AST REWRITE
// elements: LITERAL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 205:26: -> ^( CPP_TYPE LITERAL )
{
// com/facebook/swift/parser/antlr/Thrift.g:205:29: ^( CPP_TYPE LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CPP_TYPE, "CPP_TYPE"), root_1);
adaptor.addChild(root_1, stream_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "cpp_type"
public static class const_value_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_value"
// com/facebook/swift/parser/antlr/Thrift.g:209:1: const_value : ( integer | DOUBLE | LITERAL | IDENTIFIER | const_list | const_map );
public final ThriftParser.const_value_return const_value() throws RecognitionException {
ThriftParser.const_value_return retval = new ThriftParser.const_value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOUBLE144=null;
Token LITERAL145=null;
Token IDENTIFIER146=null;
ParserRuleReturnScope integer143 =null;
ParserRuleReturnScope const_list147 =null;
ParserRuleReturnScope const_map148 =null;
Object DOUBLE144_tree=null;
Object LITERAL145_tree=null;
Object IDENTIFIER146_tree=null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:210:5: ( integer | DOUBLE | LITERAL | IDENTIFIER | const_list | const_map )
int alt52=6;
switch ( input.LA(1) ) {
case HEX_INTEGER:
case INTEGER:
{
alt52=1;
}
break;
case DOUBLE:
{
alt52=2;
}
break;
case LITERAL:
{
alt52=3;
}
break;
case IDENTIFIER:
{
alt52=4;
}
break;
case 61:
{
alt52=5;
}
break;
case 87:
{
alt52=6;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:210:7: integer
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_integer_in_const_value1546);
integer143=integer();
state._fsp--;
adaptor.addChild(root_0, integer143.getTree());
}
break;
case 2 :
// com/facebook/swift/parser/antlr/Thrift.g:210:17: DOUBLE
{
root_0 = (Object)adaptor.nil();
DOUBLE144=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_const_value1550);
DOUBLE144_tree = (Object)adaptor.create(DOUBLE144);
adaptor.addChild(root_0, DOUBLE144_tree);
}
break;
case 3 :
// com/facebook/swift/parser/antlr/Thrift.g:210:26: LITERAL
{
root_0 = (Object)adaptor.nil();
LITERAL145=(Token)match(input,LITERAL,FOLLOW_LITERAL_in_const_value1554);
LITERAL145_tree = (Object)adaptor.create(LITERAL145);
adaptor.addChild(root_0, LITERAL145_tree);
}
break;
case 4 :
// com/facebook/swift/parser/antlr/Thrift.g:210:36: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER146=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_const_value1558);
IDENTIFIER146_tree = (Object)adaptor.create(IDENTIFIER146);
adaptor.addChild(root_0, IDENTIFIER146_tree);
}
break;
case 5 :
// com/facebook/swift/parser/antlr/Thrift.g:210:49: const_list
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_list_in_const_value1562);
const_list147=const_list();
state._fsp--;
adaptor.addChild(root_0, const_list147.getTree());
}
break;
case 6 :
// com/facebook/swift/parser/antlr/Thrift.g:210:62: const_map
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_map_in_const_value1566);
const_map148=const_map();
state._fsp--;
adaptor.addChild(root_0, const_map148.getTree());
}
break;
}
retval.stop = input.LT(-1);
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 "const_value"
public static class integer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "integer"
// com/facebook/swift/parser/antlr/Thrift.g:213:1: integer : ( INTEGER | HEX_INTEGER );
public final ThriftParser.integer_return integer() throws RecognitionException {
ThriftParser.integer_return retval = new ThriftParser.integer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set149=null;
Object set149_tree=null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:214:5: ( INTEGER | HEX_INTEGER )
// com/facebook/swift/parser/antlr/Thrift.g:
{
root_0 = (Object)adaptor.nil();
set149=input.LT(1);
if ( input.LA(1)==HEX_INTEGER||input.LA(1)==INTEGER ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set149));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
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 "integer"
public static class const_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_list"
// com/facebook/swift/parser/antlr/Thrift.g:229:1: const_list : '[' ( const_value ( list_separator )? )* ']' -> ^( LIST ( const_value )* ) ;
public final ThriftParser.const_list_return const_list() throws RecognitionException {
ThriftParser.const_list_return retval = new ThriftParser.const_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal150=null;
Token char_literal153=null;
ParserRuleReturnScope const_value151 =null;
ParserRuleReturnScope list_separator152 =null;
Object char_literal150_tree=null;
Object char_literal153_tree=null;
RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61");
RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_const_value=new RewriteRuleSubtreeStream(adaptor,"rule const_value");
try {
// com/facebook/swift/parser/antlr/Thrift.g:230:5: ( '[' ( const_value ( list_separator )? )* ']' -> ^( LIST ( const_value )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:230:7: '[' ( const_value ( list_separator )? )* ']'
{
char_literal150=(Token)match(input,61,FOLLOW_61_in_const_list1699);
stream_61.add(char_literal150);
// com/facebook/swift/parser/antlr/Thrift.g:230:11: ( const_value ( list_separator )? )*
loop54:
while (true) {
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==DOUBLE||(LA54_0 >= HEX_INTEGER && LA54_0 <= IDENTIFIER)||LA54_0==INTEGER||LA54_0==LITERAL||LA54_0==61||LA54_0==87) ) {
alt54=1;
}
switch (alt54) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:230:12: const_value ( list_separator )?
{
pushFollow(FOLLOW_const_value_in_const_list1702);
const_value151=const_value();
state._fsp--;
stream_const_value.add(const_value151.getTree());
// com/facebook/swift/parser/antlr/Thrift.g:230:24: ( list_separator )?
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==COMMA||LA53_0==57) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:230:24: list_separator
{
pushFollow(FOLLOW_list_separator_in_const_list1704);
list_separator152=list_separator();
state._fsp--;
stream_list_separator.add(list_separator152.getTree());
}
break;
}
}
break;
default :
break loop54;
}
}
char_literal153=(Token)match(input,62,FOLLOW_62_in_const_list1709);
stream_62.add(char_literal153);
// AST REWRITE
// elements: const_value
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 230:46: -> ^( LIST ( const_value )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:230:49: ^( LIST ( const_value )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LIST, "LIST"), root_1);
// com/facebook/swift/parser/antlr/Thrift.g:230:56: ( const_value )*
while ( stream_const_value.hasNext() ) {
adaptor.addChild(root_1, stream_const_value.nextTree());
}
stream_const_value.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "const_list"
public static class const_map_entry_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_map_entry"
// com/facebook/swift/parser/antlr/Thrift.g:233:1: const_map_entry : k= const_value ':' v= const_value ( list_separator )? -> ^( ENTRY $k $v) ;
public final ThriftParser.const_map_entry_return const_map_entry() throws RecognitionException {
ThriftParser.const_map_entry_return retval = new ThriftParser.const_map_entry_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal154=null;
ParserRuleReturnScope k =null;
ParserRuleReturnScope v =null;
ParserRuleReturnScope list_separator155 =null;
Object char_literal154_tree=null;
RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56");
RewriteRuleSubtreeStream stream_list_separator=new RewriteRuleSubtreeStream(adaptor,"rule list_separator");
RewriteRuleSubtreeStream stream_const_value=new RewriteRuleSubtreeStream(adaptor,"rule const_value");
try {
// com/facebook/swift/parser/antlr/Thrift.g:234:5: (k= const_value ':' v= const_value ( list_separator )? -> ^( ENTRY $k $v) )
// com/facebook/swift/parser/antlr/Thrift.g:234:7: k= const_value ':' v= const_value ( list_separator )?
{
pushFollow(FOLLOW_const_value_in_const_map_entry1737);
k=const_value();
state._fsp--;
stream_const_value.add(k.getTree());
char_literal154=(Token)match(input,56,FOLLOW_56_in_const_map_entry1739);
stream_56.add(char_literal154);
pushFollow(FOLLOW_const_value_in_const_map_entry1743);
v=const_value();
state._fsp--;
stream_const_value.add(v.getTree());
// com/facebook/swift/parser/antlr/Thrift.g:234:39: ( list_separator )?
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==COMMA||LA55_0==57) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:234:39: list_separator
{
pushFollow(FOLLOW_list_separator_in_const_map_entry1745);
list_separator155=list_separator();
state._fsp--;
stream_list_separator.add(list_separator155.getTree());
}
break;
}
// AST REWRITE
// elements: k, v
// token labels:
// rule labels: v, k, retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_v=new RewriteRuleSubtreeStream(adaptor,"rule v",v!=null?v.getTree():null);
RewriteRuleSubtreeStream stream_k=new RewriteRuleSubtreeStream(adaptor,"rule k",k!=null?k.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 234:55: -> ^( ENTRY $k $v)
{
// com/facebook/swift/parser/antlr/Thrift.g:234:58: ^( ENTRY $k $v)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENTRY, "ENTRY"), root_1);
adaptor.addChild(root_1, stream_k.nextTree());
adaptor.addChild(root_1, stream_v.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "const_map_entry"
public static class const_map_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_map"
// com/facebook/swift/parser/antlr/Thrift.g:237:1: const_map : '{' ( const_map_entry )* '}' -> ^( MAP ( const_map_entry )* ) ;
public final ThriftParser.const_map_return const_map() throws RecognitionException {
ThriftParser.const_map_return retval = new ThriftParser.const_map_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal156=null;
Token char_literal158=null;
ParserRuleReturnScope const_map_entry157 =null;
Object char_literal156_tree=null;
Object char_literal158_tree=null;
RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88");
RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87");
RewriteRuleSubtreeStream stream_const_map_entry=new RewriteRuleSubtreeStream(adaptor,"rule const_map_entry");
try {
// com/facebook/swift/parser/antlr/Thrift.g:238:5: ( '{' ( const_map_entry )* '}' -> ^( MAP ( const_map_entry )* ) )
// com/facebook/swift/parser/antlr/Thrift.g:238:7: '{' ( const_map_entry )* '}'
{
char_literal156=(Token)match(input,87,FOLLOW_87_in_const_map1775);
stream_87.add(char_literal156);
// com/facebook/swift/parser/antlr/Thrift.g:238:11: ( const_map_entry )*
loop56:
while (true) {
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==DOUBLE||(LA56_0 >= HEX_INTEGER && LA56_0 <= IDENTIFIER)||LA56_0==INTEGER||LA56_0==LITERAL||LA56_0==61||LA56_0==87) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// com/facebook/swift/parser/antlr/Thrift.g:238:11: const_map_entry
{
pushFollow(FOLLOW_const_map_entry_in_const_map1777);
const_map_entry157=const_map_entry();
state._fsp--;
stream_const_map_entry.add(const_map_entry157.getTree());
}
break;
default :
break loop56;
}
}
char_literal158=(Token)match(input,88,FOLLOW_88_in_const_map1780);
stream_88.add(char_literal158);
// AST REWRITE
// elements: const_map_entry
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 238:32: -> ^( MAP ( const_map_entry )* )
{
// com/facebook/swift/parser/antlr/Thrift.g:238:35: ^( MAP ( const_map_entry )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MAP, "MAP"), root_1);
// com/facebook/swift/parser/antlr/Thrift.g:238:41: ( const_map_entry )*
while ( stream_const_map_entry.hasNext() ) {
adaptor.addChild(root_1, stream_const_map_entry.nextTree());
}
stream_const_map_entry.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
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 "const_map"
public static class list_separator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "list_separator"
// com/facebook/swift/parser/antlr/Thrift.g:241:1: list_separator : ( COMMA | ';' );
public final ThriftParser.list_separator_return list_separator() throws RecognitionException {
ThriftParser.list_separator_return retval = new ThriftParser.list_separator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set159=null;
Object set159_tree=null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:242:5: ( COMMA | ';' )
// com/facebook/swift/parser/antlr/Thrift.g:
{
root_0 = (Object)adaptor.nil();
set159=input.LT(1);
if ( input.LA(1)==COMMA||input.LA(1)==57 ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set159));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
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 "list_separator"
public static class real_base_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "real_base_type"
// com/facebook/swift/parser/antlr/Thrift.g:245:1: real_base_type : ( TYPE_BOOL | TYPE_BYTE | TYPE_I16 | TYPE_I32 | TYPE_I64 | TYPE_DOUBLE | TYPE_STRING | TYPE_BINARY );
public final ThriftParser.real_base_type_return real_base_type() throws RecognitionException {
ThriftParser.real_base_type_return retval = new ThriftParser.real_base_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set160=null;
Object set160_tree=null;
try {
// com/facebook/swift/parser/antlr/Thrift.g:246:5: ( TYPE_BOOL | TYPE_BYTE | TYPE_I16 | TYPE_I32 | TYPE_I64 | TYPE_DOUBLE | TYPE_STRING | TYPE_BINARY )
// com/facebook/swift/parser/antlr/Thrift.g:
{
root_0 = (Object)adaptor.nil();
set160=input.LT(1);
if ( (input.LA(1) >= TYPE_BINARY && input.LA(1) <= TYPE_STRING) ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set160));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
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 "real_base_type"
// Delegated rules
public static final BitSet FOLLOW_header_in_document264 = new BitSet(new long[]{0x0000000000000000L,0x000000000035A4B7L});
public static final BitSet FOLLOW_definition_in_document267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000358031L});
public static final BitSet FOLLOW_EOF_in_document270 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_include_in_header300 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_namespace_in_header304 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_cpp_include_in_header308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_71_in_include325 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_LITERAL_in_include327 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_74_in_namespace352 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_55_in_namespace354 = new BitSet(new long[]{0x0000000004200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_namespace359 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LITERAL_in_namespace365 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_74_in_namespace383 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_namespace387 = new BitSet(new long[]{0x0000000004200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_namespace392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LITERAL_in_namespace398 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_66_in_namespace419 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_namespace421 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_77_in_namespace440 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_namespace442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_65_in_cpp_include470 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_LITERAL_in_cpp_include472 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_rule_in_definition498 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typedef_in_definition502 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enum_rule_in_definition506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_senum_in_definition510 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_struct_in_definition514 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_union_in_definition518 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exception_in_definition522 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_service_in_definition526 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_64_in_const_rule543 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_const_rule545 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_const_rule547 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_59_in_const_rule549 = new BitSet(new long[]{0x2000000004B02000L,0x0000000000800000L});
public static final BitSet FOLLOW_const_value_in_const_rule551 = new BitSet(new long[]{0x0200000000000022L});
public static final BitSet FOLLOW_list_separator_in_const_rule553 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_84_in_typedef591 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_typedef593 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_typedef595 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_typedef597 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_68_in_enum_rule625 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_enum_rule627 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_87_in_enum_rule629 = new BitSet(new long[]{0x0000000000200000L,0x0000000001000000L});
public static final BitSet FOLLOW_enum_field_in_enum_rule631 = new BitSet(new long[]{0x0000000000200000L,0x0000000001000000L});
public static final BitSet FOLLOW_88_in_enum_rule634 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_enum_rule636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enum_field665 = new BitSet(new long[]{0x0A20000000000022L});
public static final BitSet FOLLOW_59_in_enum_field668 = new BitSet(new long[]{0x0000000000900000L});
public static final BitSet FOLLOW_integer_in_enum_field670 = new BitSet(new long[]{0x0220000000000022L});
public static final BitSet FOLLOW_type_annotations_in_enum_field674 = new BitSet(new long[]{0x0200000000000022L});
public static final BitSet FOLLOW_list_separator_in_enum_field677 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_79_in_senum704 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_senum706 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_87_in_senum708 = new BitSet(new long[]{0x0000000004000000L,0x0000000001000000L});
public static final BitSet FOLLOW_LITERAL_in_senum711 = new BitSet(new long[]{0x0200000004000020L,0x0000000001000000L});
public static final BitSet FOLLOW_list_separator_in_senum713 = new BitSet(new long[]{0x0000000004000000L,0x0000000001000000L});
public static final BitSet FOLLOW_88_in_senum718 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_senum720 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_82_in_struct749 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_struct751 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_87_in_struct753 = new BitSet(new long[]{0x0003FC0000B00000L,0x0000000001025300L});
public static final BitSet FOLLOW_field_in_struct755 = new BitSet(new long[]{0x0003FC0000B00000L,0x0000000001025300L});
public static final BitSet FOLLOW_88_in_struct758 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_struct760 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_85_in_union792 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_union794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_87_in_union796 = new BitSet(new long[]{0x0003FC0000B00000L,0x0000000001025300L});
public static final BitSet FOLLOW_field_in_union798 = new BitSet(new long[]{0x0003FC0000B00000L,0x0000000001025300L});
public static final BitSet FOLLOW_88_in_union801 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_union803 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_69_in_exception835 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_exception837 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_87_in_exception839 = new BitSet(new long[]{0x0003FC0000B00000L,0x0000000001025300L});
public static final BitSet FOLLOW_field_in_exception841 = new BitSet(new long[]{0x0003FC0000B00000L,0x0000000001025300L});
public static final BitSet FOLLOW_88_in_exception844 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_exception846 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_80_in_service878 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_service882 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800040L});
public static final BitSet FOLLOW_70_in_service885 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_service889 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_87_in_service893 = new BitSet(new long[]{0x8003FC0000200000L,0x0000000001420B00L});
public static final BitSet FOLLOW_function_in_service897 = new BitSet(new long[]{0x8003FC0000200000L,0x0000000001420B00L});
public static final BitSet FOLLOW_88_in_service900 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_service902 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_field_id_in_field944 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000025300L});
public static final BitSet FOLLOW_field_req_in_field947 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_field950 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_field952 = new BitSet(new long[]{0x0A20000000000022L});
public static final BitSet FOLLOW_59_in_field955 = new BitSet(new long[]{0x2000000004B02000L,0x0000000000800000L});
public static final BitSet FOLLOW_const_value_in_field957 = new BitSet(new long[]{0x0220000000000022L});
public static final BitSet FOLLOW_type_annotations_in_field961 = new BitSet(new long[]{0x0200000000000022L});
public static final BitSet FOLLOW_list_separator_in_field964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_in_field_id1016 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_56_in_field_id1018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_78_in_field_req1039 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_76_in_field_req1051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oneway_in_function1073 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000420300L});
public static final BitSet FOLLOW_function_type_in_function1076 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function1078 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_53_in_function1080 = new BitSet(new long[]{0x0043FC0000B00000L,0x0000000000025300L});
public static final BitSet FOLLOW_field_in_function1082 = new BitSet(new long[]{0x0043FC0000B00000L,0x0000000000025300L});
public static final BitSet FOLLOW_54_in_function1085 = new BitSet(new long[]{0x0220000000000022L,0x0000000000080000L});
public static final BitSet FOLLOW_throws_list_in_function1087 = new BitSet(new long[]{0x0220000000000022L});
public static final BitSet FOLLOW_type_annotations_in_function1090 = new BitSet(new long[]{0x0200000000000022L});
public static final BitSet FOLLOW_list_separator_in_function1093 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_75_in_oneway1146 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_63_in_oneway1150 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_field_type_in_function_type1172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_86_in_function_type1180 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_83_in_throws_list1201 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_53_in_throws_list1203 = new BitSet(new long[]{0x0043FC0000B00000L,0x0000000000025300L});
public static final BitSet FOLLOW_field_in_throws_list1205 = new BitSet(new long[]{0x0043FC0000B00000L,0x0000000000025300L});
public static final BitSet FOLLOW_54_in_throws_list1208 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_53_in_type_annotations1235 = new BitSet(new long[]{0x0040000000200000L});
public static final BitSet FOLLOW_type_annotation_in_type_annotations1237 = new BitSet(new long[]{0x0040000000200000L});
public static final BitSet FOLLOW_54_in_type_annotations1240 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_annotation1266 = new BitSet(new long[]{0x0A00000000000022L});
public static final BitSet FOLLOW_59_in_type_annotation1269 = new BitSet(new long[]{0x0000000004900000L});
public static final BitSet FOLLOW_annotation_value_in_type_annotation1271 = new BitSet(new long[]{0x0200000000000022L});
public static final BitSet FOLLOW_list_separator_in_type_annotation1275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_in_annotation_value1304 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LITERAL_in_annotation_value1308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_base_type_in_field_type1326 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_field_type1330 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_container_type_in_field_type1334 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_real_base_type_in_base_type1351 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_base_type1353 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_map_type_in_container_type1372 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_set_type_in_container_type1376 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_list_type_in_container_type1380 = new BitSet(new long[]{0x0020000000000002L});
public static final BitSet FOLLOW_type_annotations_in_container_type1383 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_73_in_map_type1401 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_cpp_type_in_map_type1403 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_map_type1406 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_map_type1408 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_COMMA_in_map_type1410 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_map_type1412 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_60_in_map_type1414 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_81_in_set_type1444 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_cpp_type_in_set_type1446 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_set_type1449 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_set_type1451 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_60_in_set_type1453 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_72_in_list_type1481 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_list_type1483 = new BitSet(new long[]{0x0003FC0000200000L,0x0000000000020300L});
public static final BitSet FOLLOW_field_type_in_list_type1485 = new BitSet(new long[]{0x1000000000000000L});
public static final BitSet FOLLOW_60_in_list_type1487 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L});
public static final BitSet FOLLOW_cpp_type_in_list_type1489 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_67_in_cpp_type1518 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_LITERAL_in_cpp_type1520 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_in_const_value1546 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_const_value1550 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LITERAL_in_const_value1554 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_const_value1558 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_list_in_const_value1562 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_map_in_const_value1566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_61_in_const_list1699 = new BitSet(new long[]{0x6000000004B02000L,0x0000000000800000L});
public static final BitSet FOLLOW_const_value_in_const_list1702 = new BitSet(new long[]{0x6200000004B02020L,0x0000000000800000L});
public static final BitSet FOLLOW_list_separator_in_const_list1704 = new BitSet(new long[]{0x6000000004B02000L,0x0000000000800000L});
public static final BitSet FOLLOW_62_in_const_list1709 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_value_in_const_map_entry1737 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_56_in_const_map_entry1739 = new BitSet(new long[]{0x2000000004B02000L,0x0000000000800000L});
public static final BitSet FOLLOW_const_value_in_const_map_entry1743 = new BitSet(new long[]{0x0200000000000022L});
public static final BitSet FOLLOW_list_separator_in_const_map_entry1745 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_87_in_const_map1775 = new BitSet(new long[]{0x2000000004B02000L,0x0000000001800000L});
public static final BitSet FOLLOW_const_map_entry_in_const_map1777 = new BitSet(new long[]{0x2000000004B02000L,0x0000000001800000L});
public static final BitSet FOLLOW_88_in_const_map1780 = new BitSet(new long[]{0x0000000000000002L});
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy