public final SemgrexPattern Relation() throws ParseException { GraphRelation reln; Token rel = null; Token relnType = null; Token numArg = null; Token numArg2 = null; Token name = null; SemgrexPattern node; boolean pC = false; switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case RELATION: case IDENTIFIER: { switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case IDENTIFIER: { numArg = jj_consume_token(IDENTIFIER); switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case 21: { jj_consume_token(21); numArg2 = jj_consume_token(IDENTIFIER); break; } default: jj_la1[10] = jj_gen; ; } break; } default: jj_la1[11] = jj_gen; ; } rel = jj_consume_token(RELATION); switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case IDENTIFIER: case REGEX: { switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case IDENTIFIER: { relnType = jj_consume_token(IDENTIFIER); break; } case REGEX: { relnType = jj_consume_token(REGEX); break; } default: jj_la1[12] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; } default: jj_la1[13] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case 22: { jj_consume_token(22); name = jj_consume_token(IDENTIFIER); break; } default: jj_la1[14] = jj_gen; ; } break; } case ALIGNRELN: { rel = jj_consume_token(ALIGNRELN); break; } default: jj_la1[15] = jj_gen; jj_consume_token(-1); throw new ParseException(); } if (numArg == null && numArg2 == null) { reln = GraphRelation.getRelation( rel != null ? rel.image : null, relnType != null ? relnType.image : null, name != null ? name.image : null); } else if (numArg2 == null) { reln = GraphRelation.getRelation( rel != null ? rel.image : null, relnType != null ? relnType.image : null, Integer.parseInt(numArg.image), name != null ? name.image : null); } else { reln = GraphRelation.getRelation( rel != null ? rel.image : null, relnType != null ? relnType.image : null, Integer.parseInt(numArg.image), Integer.parseInt(numArg2.image), name != null ? name.image : null); } switch ((jj_ntk == -1) ? jj_ntk_f() : jj_ntk) { case 17: case 19: case 23: { node = ModNode(reln); break; } case 13: { jj_consume_token(13); node = SubNode(reln); jj_consume_token(14); break; } default: jj_la1[16] = jj_gen; jj_consume_token(-1); throw new ParseException(); } { if ("" != null) return node; } throw new Error("Missing return statement in function"); }