}
//try_stmt: ('try' ':' suite (except_clause ':' suite)+ #diagram:break
// ['else' ':' suite] | 'try' ':' suite 'finally' ':' suite)
final public void try_stmt() throws ParseException {
SimpleNode tryNode;
int i = 0;
begin_try_stmt();
tryNode = (SimpleNode) jjtree.peekNode();
suite();
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case EXCEPT:
label_20: while (true) {
except_clause(tryNode);
i++;
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case EXCEPT:
;
break;
default:
jj_la1[72] = jj_gen;
break label_20;
}
}
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case ELSE:
begin_try_else_stmt();
suite();
SimpleNode jjtn001 = builder.openNode(JJTTRYELSE_STMT);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
jjtreeOpenNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 2);
jjtc001 = false;
jjtreeCloseNodeScope(jjtn001);
i++;
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
jjtreeCloseNodeScope(jjtn001);
}
}
break;
default:
jj_la1[73] = jj_gen;
;
}
SimpleNode jjtn003 = builder.openNode(JJTTRY_STMT);
boolean jjtc003 = true;
jjtree.openNodeScope(jjtn003);
jjtreeOpenNodeScope(jjtn003);
try {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case FINALLY:
begin_finally_stmt();
suite();
SimpleNode jjtn002 = builder.openNode(JJTTRYFINALLY_OUTER_STMT);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
jjtreeOpenNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 2);
jjtc002 = false;
jjtreeCloseNodeScope(jjtn002);
i++;
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 2);
jjtreeCloseNodeScope(jjtn002);
}
}
break;
default:
jj_la1[74] = jj_gen;
;
}
} catch (Throwable jjte003) {
if (jjtc003) {
jjtree.clearNodeScope(jjtn003);
jjtc003 = false;
} else {
jjtree.popNode();
}
if (jjte003 instanceof RuntimeException) {
{
if (true)
throw (RuntimeException) jjte003;
}
}
if (jjte003 instanceof ParseException) {
{
if (true)
throw (ParseException) jjte003;
}
}
{
if (true)
throw (Error) jjte003;
}
} finally {
if (jjtc003) {
jjtree.closeNodeScope(jjtn003, i);
jjtreeCloseNodeScope(jjtn003);
}
}
break;
case FINALLY:
begin_finally_stmt();
SimpleNode jjtn004 = builder.openNode(JJTTRYFINALLY_STMT);
boolean jjtc004 = true;
jjtree.openNodeScope(jjtn004);
jjtreeOpenNodeScope(jjtn004);
try {
suite();