/* Generated By:JJTree&JavaCC: Do not edit this line. thrift_grammar.java */ package org.apache.hadoop.hive.serde2.dynamic_type; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class thrift_grammar/* @bgen(jjtree) */implements thrift_grammarTreeConstants, thrift_grammarConstants {/* @bgen(jjtree) */ protected JJTthrift_grammarState jjtree = new JJTthrift_grammarState(); private List<String> include_path = null; // for computing the autogenerated field ids in thrift private int field_val; // store types and tables // separately because one cannot use a table (ie service.method) as a Struct // like type. protected Map<String, DynamicSerDeSimpleNode> types; protected Map<String, DynamicSerDeSimpleNode> tables; // system include path final private static String default_include_path[] = {"/usr/local/include", "/usr/include", "/usr/local/include/thrift/if", "/usr/local/include/fb303/if"}; // need three params to differentiate between this and 2 param method auto // generated since // some calls in the autogenerated code use null param for 2nd param and thus // ambiguous. protected thrift_grammar(InputStream is, List<String> include_path, boolean junk) { this(is, null); types = new HashMap<String, DynamicSerDeSimpleNode>(); tables = new HashMap<String, DynamicSerDeSimpleNode>(); this.include_path = include_path; field_val = -1; } // find the file on the include path private static File findFile(String fname, List<String> include_path) { for (String path : include_path) { final String full = path + "/" + fname; File f = new File(full); if (f.exists()) { return f; } } return null; } public static void main(String args[]) { String filename = null; List<String> include_path = new ArrayList<String>(); for (String path : default_include_path) { include_path.add(path); } for (int i = 0; i < args.length; i++) { String arg = args[i]; if (arg.equals("--include") && i + 1 < args.length) { include_path.add(args[++i]); } if (arg.equals("--file") && i + 1 < args.length) { filename = args[++i]; } } InputStream is = System.in; if (filename != null) { try { is = new FileInputStream(findFile(filename, include_path)); } catch (IOException e) { } } thrift_grammar t = new thrift_grammar(is, include_path, false); try { t.Start(); } catch (Exception e) { System.out.println("Parse error."); System.out.println(e.getMessage()); e.printStackTrace(); } } final public SimpleNode Start() throws ParseException { /* @bgen(jjtree) Start */ DynamicSerDeStart jjtn000 = new DynamicSerDeStart(JJTSTART); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { HeaderList(); label_1: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[0] = jj_gen; ; } Definition(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_const: case tok_senum: case tok_typedef: case tok_struct: case tok_exception: case tok_service: case tok_enum: case 59: case 60: ; break; default: jj_la1[1] = jj_gen; break label_1; } } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode HeaderList() throws ParseException { /* @bgen(jjtree) HeaderList */ DynamicSerDeHeaderList jjtn000 = new DynamicSerDeHeaderList(JJTHEADERLIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { label_2: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_namespace: case tok_cpp_namespace: case tok_cpp_include: case tok_java_package: case tok_cocoa_prefix: case tok_csharp_namespace: case tok_php_namespace: case tok_py_module: case tok_perl_package: case tok_ruby_namespace: case tok_smalltalk_category: case tok_smalltalk_prefix: case tok_xsd_namespace: case tok_include: ; break; default: jj_la1[2] = jj_gen; break label_2; } Header(); } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Header() throws ParseException { /* @bgen(jjtree) Header */ DynamicSerDeHeader jjtn000 = new DynamicSerDeHeader(JJTHEADER); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_include: Include(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_namespace: case tok_cpp_namespace: case tok_cpp_include: case tok_java_package: case tok_cocoa_prefix: case tok_csharp_namespace: case tok_php_namespace: case tok_py_module: case tok_perl_package: case tok_ruby_namespace: case tok_smalltalk_category: case tok_smalltalk_prefix: case tok_xsd_namespace: Namespace(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[3] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Namespace() throws ParseException { /* @bgen(jjtree) Namespace */ DynamicSerDeNamespace jjtn000 = new DynamicSerDeNamespace(JJTNAMESPACE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_namespace: jj_consume_token(tok_namespace); jj_consume_token(IDENTIFIER); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_cpp_namespace: jj_consume_token(tok_cpp_namespace); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_cpp_include: jj_consume_token(tok_cpp_include); jj_consume_token(tok_literal); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_php_namespace: jj_consume_token(tok_php_namespace); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_py_module: jj_consume_token(tok_py_module); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_perl_package: jj_consume_token(tok_perl_package); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_ruby_namespace: jj_consume_token(tok_ruby_namespace); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_smalltalk_category: jj_consume_token(tok_smalltalk_category); jj_consume_token(tok_st_identifier); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_smalltalk_prefix: jj_consume_token(tok_smalltalk_prefix); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_java_package: jj_consume_token(tok_java_package); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_cocoa_prefix: jj_consume_token(tok_cocoa_prefix); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_xsd_namespace: jj_consume_token(tok_xsd_namespace); jj_consume_token(tok_literal); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_csharp_namespace: jj_consume_token(tok_csharp_namespace); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[4] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Include() throws ParseException { /* @bgen(jjtree) Include */ DynamicSerDeInclude jjtn000 = new DynamicSerDeInclude(JJTINCLUDE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); String fname; boolean found = false; try { jj_consume_token(tok_include); fname = jj_consume_token(tok_literal).image; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; // bugbug somewhat fragile below substring expression fname = fname.substring(1, fname.length() - 1); // try to find the file on the include path File f = thrift_grammar.findFile(fname, include_path); if (f != null) { found = true; try { FileInputStream fis = new FileInputStream(f); thrift_grammar t = new thrift_grammar(fis, include_path, false); t.Start(); fis.close(); found = true; // add in what we found to our type and table tables. tables.putAll(t.tables); types.putAll(t.types); } catch (Exception e) { System.out.println("File: " + fname + " - Oops."); System.out.println(e.getMessage()); e.printStackTrace(); } } if (!found) { { if (true) { throw new RuntimeException("include file not found: " + fname); } } } { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Definition() throws ParseException { /* @bgen(jjtree) Definition */ DynamicSerDeDefinition jjtn000 = new DynamicSerDeDefinition(JJTDEFINITION); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_const: Const(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_service: Service(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_senum: case tok_typedef: case tok_struct: case tok_exception: case tok_enum: TypeDefinition(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[5] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode TypeDefinition() throws ParseException { /* @bgen(jjtree) TypeDefinition */ DynamicSerDeTypeDefinition jjtn000 = new DynamicSerDeTypeDefinition( JJTTYPEDEFINITION); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_typedef: Typedef(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_enum: Enum(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_senum: Senum(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_struct: Struct(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_exception: Xception(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[6] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypedef Typedef() throws ParseException { /* @bgen(jjtree) Typedef */ DynamicSerDeTypedef jjtn000 = new DynamicSerDeTypedef(JJTTYPEDEF); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_typedef); DefinitionType(); jjtn000.name = jj_consume_token(IDENTIFIER).image; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; // store the type for later retrieval types.put(jjtn000.name, jjtn000); { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } // returning void because we ignore this production. final public void CommaOrSemicolon() throws ParseException { /* @bgen(jjtree) CommaOrSemicolon */ DynamicSerDeCommaOrSemicolon jjtn000 = new DynamicSerDeCommaOrSemicolon( JJTCOMMAORSEMICOLON); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: jj_consume_token(59); break; case 60: jj_consume_token(60); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; default: jj_la1[7] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } } final public SimpleNode Enum() throws ParseException { /* @bgen(jjtree) Enum */ DynamicSerDeEnum jjtn000 = new DynamicSerDeEnum(JJTENUM); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_enum); jj_consume_token(IDENTIFIER); jj_consume_token(61); EnumDefList(); jj_consume_token(62); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode EnumDefList() throws ParseException { /* @bgen(jjtree) EnumDefList */ DynamicSerDeEnumDefList jjtn000 = new DynamicSerDeEnumDefList( JJTENUMDEFLIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { label_3: while (true) { EnumDef(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case IDENTIFIER: ; break; default: jj_la1[8] = jj_gen; break label_3; } } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode EnumDef() throws ParseException { /* @bgen(jjtree) EnumDef */ DynamicSerDeEnumDef jjtn000 = new DynamicSerDeEnumDef(JJTENUMDEF); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(IDENTIFIER); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 63: jj_consume_token(63); jj_consume_token(tok_int_constant); break; default: jj_la1[9] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[10] = jj_gen; ; } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Senum() throws ParseException { /* @bgen(jjtree) Senum */ DynamicSerDeSenum jjtn000 = new DynamicSerDeSenum(JJTSENUM); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_senum); jj_consume_token(IDENTIFIER); jj_consume_token(61); SenumDefList(); jj_consume_token(62); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode SenumDefList() throws ParseException { /* @bgen(jjtree) SenumDefList */ DynamicSerDeSenumDefList jjtn000 = new DynamicSerDeSenumDefList( JJTSENUMDEFLIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { label_4: while (true) { SenumDef(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_literal: ; break; default: jj_la1[11] = jj_gen; break label_4; } } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode SenumDef() throws ParseException { /* @bgen(jjtree) SenumDef */ DynamicSerDeSenumDef jjtn000 = new DynamicSerDeSenumDef(JJTSENUMDEF); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_literal); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[12] = jj_gen; ; } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Const() throws ParseException { /* @bgen(jjtree) Const */ DynamicSerDeConst jjtn000 = new DynamicSerDeConst(JJTCONST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_const); FieldType(); jj_consume_token(IDENTIFIER); jj_consume_token(63); ConstValue(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[13] = jj_gen; ; } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode ConstValue() throws ParseException { /* @bgen(jjtree) ConstValue */ DynamicSerDeConstValue jjtn000 = new DynamicSerDeConstValue(JJTCONSTVALUE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_int_constant: jj_consume_token(tok_int_constant); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; case tok_double_constant: jj_consume_token(tok_double_constant); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; case tok_literal: jj_consume_token(tok_literal); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; case IDENTIFIER: jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; case 64: ConstList(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; case 61: ConstMap(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[14] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode ConstList() throws ParseException { /* @bgen(jjtree) ConstList */ DynamicSerDeConstList jjtn000 = new DynamicSerDeConstList(JJTCONSTLIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(64); ConstListContents(); jj_consume_token(65); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode ConstListContents() throws ParseException { /* @bgen(jjtree) ConstListContents */ DynamicSerDeConstListContents jjtn000 = new DynamicSerDeConstListContents( JJTCONSTLISTCONTENTS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { label_5: while (true) { ConstValue(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[15] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_int_constant: case tok_double_constant: case IDENTIFIER: case tok_literal: case 61: case 64: ; break; default: jj_la1[16] = jj_gen; break label_5; } } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode ConstMap() throws ParseException { /* @bgen(jjtree) ConstMap */ DynamicSerDeConstMap jjtn000 = new DynamicSerDeConstMap(JJTCONSTMAP); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(61); ConstMapContents(); jj_consume_token(62); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode ConstMapContents() throws ParseException { /* @bgen(jjtree) ConstMapContents */ DynamicSerDeConstMapContents jjtn000 = new DynamicSerDeConstMapContents( JJTCONSTMAPCONTENTS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_int_constant: case tok_double_constant: case IDENTIFIER: case tok_literal: case 61: case 64: label_6: while (true) { ConstValue(); jj_consume_token(66); ConstValue(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[17] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_int_constant: case tok_double_constant: case IDENTIFIER: case tok_literal: case 61: case 64: ; break; default: jj_la1[18] = jj_gen; break label_6; } } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; default: jj_la1[19] = jj_gen; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeStruct Struct() throws ParseException { /* @bgen(jjtree) Struct */ DynamicSerDeStruct jjtn000 = new DynamicSerDeStruct(JJTSTRUCT); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_struct); jjtn000.name = jj_consume_token(IDENTIFIER).image; jj_consume_token(61); FieldList(); jj_consume_token(62); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; types.put(jjtn000.name, jjtn000); { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Xception() throws ParseException { /* @bgen(jjtree) Xception */ DynamicSerDeXception jjtn000 = new DynamicSerDeXception(JJTXCEPTION); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_exception); jj_consume_token(IDENTIFIER); jj_consume_token(61); FieldList(); jj_consume_token(62); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Service() throws ParseException { /* @bgen(jjtree) Service */ DynamicSerDeService jjtn000 = new DynamicSerDeService(JJTSERVICE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_service); jj_consume_token(IDENTIFIER); Extends(); jj_consume_token(61); FlagArgs(); label_7: while (true) { Function(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_void: case tok_bool: case tok_i16: case tok_i32: case tok_i64: case tok_double: case tok_string: case tok_map: case tok_list: case tok_set: case tok_async: case IDENTIFIER: ; break; default: jj_la1[20] = jj_gen; break label_7; } } UnflagArgs(); jj_consume_token(62); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; // at some point, these should be inserted as a "db" { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode FlagArgs() throws ParseException { /* @bgen(jjtree) FlagArgs */ DynamicSerDeFlagArgs jjtn000 = new DynamicSerDeFlagArgs(JJTFLAGARGS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode UnflagArgs() throws ParseException { /* @bgen(jjtree) UnflagArgs */ DynamicSerDeUnflagArgs jjtn000 = new DynamicSerDeUnflagArgs(JJTUNFLAGARGS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode Extends() throws ParseException { /* @bgen(jjtree) Extends */ DynamicSerDeExtends jjtn000 = new DynamicSerDeExtends(JJTEXTENDS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_extends: jj_consume_token(tok_extends); jj_consume_token(IDENTIFIER); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[21] = jj_gen; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeFunction Function() throws ParseException { /* @bgen(jjtree) Function */ DynamicSerDeFunction jjtn000 = new DynamicSerDeFunction(JJTFUNCTION); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { Async(); FunctionType(); // the name of the function/table jjtn000.name = jj_consume_token(IDENTIFIER).image; jj_consume_token(67); FieldList(); jj_consume_token(68); Throws(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[22] = jj_gen; ; } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; tables.put(jjtn000.name, jjtn000); { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public void Async() throws ParseException { /* @bgen(jjtree) Async */ DynamicSerDeAsync jjtn000 = new DynamicSerDeAsync(JJTASYNC); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_async: jj_consume_token(tok_async); break; default: jj_la1[23] = jj_gen; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } } final public void Throws() throws ParseException { /* @bgen(jjtree) Throws */ DynamicSerDeThrows jjtn000 = new DynamicSerDeThrows(JJTTHROWS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_throws: jj_consume_token(tok_throws); jj_consume_token(67); FieldList(); jj_consume_token(68); break; default: jj_la1[24] = jj_gen; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } } // nothing special - just use the DynamicSerDeFieldList's children methods to // access the fields final public DynamicSerDeFieldList FieldList() throws ParseException { /* @bgen(jjtree) FieldList */ DynamicSerDeFieldList jjtn000 = new DynamicSerDeFieldList(JJTFIELDLIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); field_val = -1; try { label_8: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_bool: case tok_i16: case tok_i32: case tok_i64: case tok_double: case tok_string: case tok_map: case tok_list: case tok_set: case tok_required: case tok_optional: case tok_skip: case tok_int_constant: case IDENTIFIER: ; break; default: jj_la1[25] = jj_gen; break label_8; } Field(); } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeField Field() throws ParseException { /* @bgen(jjtree) Field */ DynamicSerDeField jjtn000 = new DynamicSerDeField(JJTFIELD); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); String fidnum = ""; try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_int_constant: fidnum = jj_consume_token(tok_int_constant).image; jj_consume_token(66); break; default: jj_la1[26] = jj_gen; ; } FieldRequiredness(); FieldType(); // the name of the field - not optional jjtn000.name = jj_consume_token(IDENTIFIER).image; FieldValue(); switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 59: case 60: CommaOrSemicolon(); break; default: jj_la1[27] = jj_gen; ; } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; if (fidnum.length() > 0) { int fidInt = Integer.parseInt(fidnum); jjtn000.fieldid = fidInt; } else { jjtn000.fieldid = field_val--; } { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeFieldRequiredness FieldRequiredness() throws ParseException { /* @bgen(jjtree) FieldRequiredness */ DynamicSerDeFieldRequiredness jjtn000 = new DynamicSerDeFieldRequiredness( JJTFIELDREQUIREDNESS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_required: jj_consume_token(tok_required); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; jjtn000.requiredness = DynamicSerDeFieldRequiredness.RequirednessTypes.Required; { if (true) { return jjtn000; } } break; case tok_optional: jj_consume_token(tok_optional); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; jjtn000.requiredness = DynamicSerDeFieldRequiredness.RequirednessTypes.Optional; { if (true) { return jjtn000; } } break; case tok_skip: jj_consume_token(tok_skip); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; jjtn000.requiredness = DynamicSerDeFieldRequiredness.RequirednessTypes.Skippable; { if (true) { return jjtn000; } } break; default: jj_la1[28] = jj_gen; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode FieldValue() throws ParseException { /* @bgen(jjtree) FieldValue */ DynamicSerDeFieldValue jjtn000 = new DynamicSerDeFieldValue(JJTFIELDVALUE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case 63: jj_consume_token(63); ConstValue(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[29] = jj_gen; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public SimpleNode DefinitionType() throws ParseException { /* @bgen(jjtree) DefinitionType */ DynamicSerDeDefinitionType jjtn000 = new DynamicSerDeDefinitionType( JJTDEFINITIONTYPE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_string: TypeString(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_bool: TypeBool(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_i16: Typei16(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_i32: Typei32(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_i64: Typei64(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_double: TypeDouble(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_map: TypeMap(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_set: TypeSet(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_list: TypeList(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; default: jj_la1[30] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public void FunctionType() throws ParseException { /* @bgen(jjtree) FunctionType */ DynamicSerDeFunctionType jjtn000 = new DynamicSerDeFunctionType( JJTFUNCTIONTYPE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_bool: case tok_i16: case tok_i32: case tok_i64: case tok_double: case tok_string: case tok_map: case tok_list: case tok_set: case IDENTIFIER: FieldType(); break; case tok_void: jj_consume_token(tok_void); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; break; default: jj_la1[31] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } } final public DynamicSerDeFieldType FieldType() throws ParseException { /* @bgen(jjtree) FieldType */ DynamicSerDeFieldType jjtn000 = new DynamicSerDeFieldType(JJTFIELDTYPE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case tok_string: TypeString(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_bool: TypeBool(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_i16: Typei16(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_i32: Typei32(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_i64: Typei64(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_double: TypeDouble(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_map: TypeMap(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_set: TypeSet(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case tok_list: TypeList(); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } break; case IDENTIFIER: jjtn000.name = jj_consume_token(IDENTIFIER).image; jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; if (types.get(jjtn000.name) == null) { System.err.println("ERROR: DDL specifying type " + jjtn000.name + " which has not been defined"); { if (true) { throw new RuntimeException("specifying type " + jjtn000.name + " which has not been defined"); } } } // lookup the specified type and set this nodes type to it. Precludes // forward and self references for now. jjtn000.jjtAddChild(types.get(jjtn000.name), 0); { if (true) { return jjtn000; } } break; default: jj_la1[32] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeString TypeString() throws ParseException { /* @bgen(jjtree) TypeString */ DynamicSerDeTypeString jjtn000 = new DynamicSerDeTypeString(JJTTYPESTRING); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_string); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeByte TypeByte() throws ParseException { /* @bgen(jjtree) TypeByte */ DynamicSerDeTypeByte jjtn000 = new DynamicSerDeTypeByte(JJTTYPEBYTE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_byte); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypei16 Typei16() throws ParseException { /* @bgen(jjtree) Typei16 */ DynamicSerDeTypei16 jjtn000 = new DynamicSerDeTypei16(JJTTYPEI16); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_i16); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypei32 Typei32() throws ParseException { /* @bgen(jjtree) Typei32 */ DynamicSerDeTypei32 jjtn000 = new DynamicSerDeTypei32(JJTTYPEI32); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_i32); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypei64 Typei64() throws ParseException { /* @bgen(jjtree) Typei64 */ DynamicSerDeTypei64 jjtn000 = new DynamicSerDeTypei64(JJTTYPEI64); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_i64); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeDouble TypeDouble() throws ParseException { /* @bgen(jjtree) TypeDouble */ DynamicSerDeTypeDouble jjtn000 = new DynamicSerDeTypeDouble(JJTTYPEDOUBLE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_double); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeBool TypeBool() throws ParseException { /* @bgen(jjtree) TypeBool */ DynamicSerDeTypeBool jjtn000 = new DynamicSerDeTypeBool(JJTTYPEBOOL); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_bool); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeMap TypeMap() throws ParseException { /* @bgen(jjtree) TypeMap */ DynamicSerDeTypeMap jjtn000 = new DynamicSerDeTypeMap(JJTTYPEMAP); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_map); jj_consume_token(69); FieldType(); jj_consume_token(59); FieldType(); jj_consume_token(70); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeSet TypeSet() throws ParseException { /* @bgen(jjtree) TypeSet */ DynamicSerDeTypeSet jjtn000 = new DynamicSerDeTypeSet(JJTTYPESET); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_set); jj_consume_token(69); FieldType(); jj_consume_token(70); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } final public DynamicSerDeTypeList TypeList() throws ParseException { /* @bgen(jjtree) TypeList */ DynamicSerDeTypeList jjtn000 = new DynamicSerDeTypeList(JJTTYPELIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { jj_consume_token(tok_list); jj_consume_token(69); FieldType(); jj_consume_token(70); jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; { if (true) { return jjtn000; } } } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { { if (true) { throw (RuntimeException) jjte000; } } } if (jjte000 instanceof ParseException) { { if (true) { throw (ParseException) jjte000; } } } { if (true) { throw (Error) jjte000; } } } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } throw new Error("Missing return statement in function"); } /** Generated Token Manager. */ public thrift_grammarTokenManager token_source; SimpleCharStream jj_input_stream; /** Current token. */ public Token token; /** Next token. */ public Token jj_nt; private int jj_ntk; private int jj_gen; final private int[] jj_la1 = new int[33]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; static { jj_la1_init_0(); jj_la1_init_1(); jj_la1_init_2(); } private static void jj_la1_init_0() { jj_la1_0 = new int[] {0x0, 0x100, 0xa3fee00, 0xa3fee00, 0x23fee00, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0000000, 0x0, 0x0, 0x0, 0x0, 0xa0000000, 0x0, 0x0, 0x0, 0x0, 0xa0000000, 0xb0000000, 0xa0000000,}; } private static void jj_la1_init_1() { jj_la1_1 = new int[] {0x18000000, 0x18019c20, 0x0, 0x0, 0x0, 0x19c20, 0x11c20, 0x18000000, 0x400000, 0x80000000, 0x18000000, 0x2000000, 0x18000000, 0x18000000, 0x22700000, 0x18000000, 0x22700000, 0x18000000, 0x22700000, 0x22700000, 0x4003cf, 0x2000, 0x18000000, 0x200, 0x4000, 0x5e01cf, 0x100000, 0x18000000, 0xe0000, 0x80000000, 0x1cf, 0x4001cf, 0x4001cf,}; } private static void jj_la1_init_2() { jj_la1_2 = new int[] {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,}; } /** Constructor with InputStream. */ public thrift_grammar(java.io.InputStream stream) { this(stream, null); } /** Constructor with InputStream and supplied encoding */ public thrift_grammar(java.io.InputStream stream, String encoding) { try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch (java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } token_source = new thrift_grammarTokenManager(jj_input_stream); token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 33; i++) { jj_la1[i] = -1; } } /** Reinitialise. */ public void ReInit(java.io.InputStream stream) { ReInit(stream, null); } /** Reinitialise. */ public void ReInit(java.io.InputStream stream, String encoding) { try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch (java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } token_source.ReInit(jj_input_stream); token = new Token(); jj_ntk = -1; jjtree.reset(); jj_gen = 0; for (int i = 0; i < 33; i++) { jj_la1[i] = -1; } } /** Constructor. */ public thrift_grammar(java.io.Reader stream) { jj_input_stream = new SimpleCharStream(stream, 1, 1); token_source = new thrift_grammarTokenManager(jj_input_stream); token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 33; i++) { jj_la1[i] = -1; } } /** Reinitialise. */ public void ReInit(java.io.Reader stream) { jj_input_stream.ReInit(stream, 1, 1); token_source.ReInit(jj_input_stream); token = new Token(); jj_ntk = -1; jjtree.reset(); jj_gen = 0; for (int i = 0; i < 33; i++) { jj_la1[i] = -1; } } /** Constructor with generated Token Manager. */ public thrift_grammar(thrift_grammarTokenManager tm) { token_source = tm; token = new Token(); jj_ntk = -1; jj_gen = 0; for (int i = 0; i < 33; i++) { jj_la1[i] = -1; } } /** Reinitialise. */ public void ReInit(thrift_grammarTokenManager tm) { token_source = tm; token = new Token(); jj_ntk = -1; jjtree.reset(); jj_gen = 0; for (int i = 0; i < 33; i++) { jj_la1[i] = -1; } } private Token jj_consume_token(int kind) throws ParseException { Token oldToken; if ((oldToken = token).next != null) { token = token.next; } else { token = token.next = token_source.getNextToken(); } jj_ntk = -1; if (token.kind == kind) { jj_gen++; return token; } token = oldToken; jj_kind = kind; throw generateParseException(); } /** Get the next Token. */ final public Token getNextToken() { if (token.next != null) { token = token.next; } else { token = token.next = token_source.getNextToken(); } jj_ntk = -1; jj_gen++; return token; } /** Get the specific Token. */ final public Token getToken(int index) { Token t = token; for (int i = 0; i < index; i++) { if (t.next != null) { t = t.next; } else { t = t.next = token_source.getNextToken(); } } return t; } private int jj_ntk() { if ((jj_nt = token.next) == null) { return (jj_ntk = (token.next = token_source.getNextToken()).kind); } else { return (jj_ntk = jj_nt.kind); } } private final java.util.List jj_expentries = new java.util.ArrayList(); private int[] jj_expentry; private int jj_kind = -1; /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); boolean[] la1tokens = new boolean[71]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } for (int i = 0; i < 33; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1 << j)) != 0) { la1tokens[j] = true; } if ((jj_la1_1[i] & (1 << j)) != 0) { la1tokens[32 + j] = true; } if ((jj_la1_2[i] & (1 << j)) != 0) { la1tokens[64 + j] = true; } } } } for (int i = 0; i < 71; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; jj_expentries.add(jj_expentry); } } int[][] exptokseq = new int[jj_expentries.size()][]; for (int i = 0; i < jj_expentries.size(); i++) { exptokseq[i] = (int[]) jj_expentries.get(i); } return new ParseException(token, exptokseq, tokenImage); } /** Enable tracing. */ final public void enable_tracing() { } /** Disable tracing. */ final public void disable_tracing() { } }