import net.sf.jsqlparser.statement.select.WithItem; //導入方法依賴的package包/類
final public WithItem WithItem() throws ParseException {
/* @bgen(jjtree) WithItem */
SimpleNode jjtn000 = new SimpleNode(JJTWITHITEM);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
WithItem with = new WithItem();
String name = null;
List selectItems = null;
SelectBody selectBody = null;
try {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case K_RECURSIVE:
jj_consume_token(K_RECURSIVE);
with.setRecursive(true);
break;
default:
jj_la1[91] = jj_gen;
;
}
name = RelObjectName();
with.setName(name);
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case 166:
jj_consume_token(166);
selectItems = SelectItemsList();
jj_consume_token(167);
with.setWithItemList(selectItems);
break;
default:
jj_la1[92] = jj_gen;
;
}
jj_consume_token(K_AS);
jj_consume_token(166);
selectBody = SelectBody();
with.setSelectBody(selectBody);
jj_consume_token(167);
jjtree.closeNodeScope(jjtn000, true);
jjtc000 = false;
{
if (true)
return with;
}
} 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");
}