📄 parser.java
字号:
/**
* for creating a map in a #set
*
* #set($foo = {$foo : $bar, $blargh : $thingy})
*/
final public void Map() throws ParseException {
/*@bgen(jjtree) Map */
ASTMap jjtn000 = new ASTMap(this, JJTMAP);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(LEFT_CURLEY);
if (jj_2_5(2)) {
Parameter();
jj_consume_token(COLON);
Parameter();
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
jj_la1[14] = jj_gen;
break label_5;
}
jj_consume_token(COMMA);
Parameter();
jj_consume_token(COLON);
Parameter();
}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[15] = jj_gen;
;
}
}
jj_consume_token(RIGHT_CURLEY);
} 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 void ObjectArray() throws ParseException {
/*@bgen(jjtree) ObjectArray */
ASTObjectArray jjtn000 = new ASTObjectArray(this, JJTOBJECTARRAY);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(LBRACKET);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LBRACKET:
case LEFT_CURLEY:
case WHITESPACE:
case STRING_LITERAL:
case TRUE:
case FALSE:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case IDENTIFIER:
case LCURLY:
Parameter();
label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
jj_la1[16] = jj_gen;
break label_6;
}
jj_consume_token(COMMA);
Parameter();
}
break;
default:
jj_la1[17] = jj_gen;
;
}
jj_consume_token(RBRACKET);
} 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);
}
}
}
/**
* supports the [n..m] vector generator for use in
* the #foreach() to generate measured ranges w/o
* needing explicit support from the app/servlet
*/
final public void IntegerRange() throws ParseException {
/*@bgen(jjtree) IntegerRange */
ASTIntegerRange jjtn000 = new ASTIntegerRange(this, JJTINTEGERRANGE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(LBRACKET);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[18] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case LCURLY:
Reference();
break;
case INTEGER_LITERAL:
IntegerLiteral();
break;
default:
jj_la1[19] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[20] = jj_gen;
;
}
jj_consume_token(DOUBLEDOT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[21] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case LCURLY:
Reference();
break;
case INTEGER_LITERAL:
IntegerLiteral();
break;
default:
jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[23] = jj_gen;
;
}
jj_consume_token(RBRACKET);
} 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);
}
}
}
/**
* This method has yet to be fully implemented
* but will allow arbitrarily nested method
* calls
*/
final public void Parameter() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[24] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case STRING_LITERAL:
StringLiteral();
break;
case INTEGER_LITERAL:
IntegerLiteral();
break;
default:
jj_la1[25] = jj_gen;
if (jj_2_6(2147483647)) {
IntegerRange();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LEFT_CURLEY:
Map();
break;
case LBRACKET:
ObjectArray();
break;
case TRUE:
True();
break;
case FALSE:
False();
break;
case IDENTIFIER:
case LCURLY:
Reference();
break;
case FLOATING_POINT_LITERAL:
FloatingPointLiteral();
break;
default:
jj_la1[26] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[27] = jj_gen;
;
}
}
/**
* This method has yet to be fully implemented
* but will allow arbitrarily nested method
* calls
*/
final public void Method() throws ParseException {
/*@bgen(jjtree) Method */
ASTMethod jjtn000 = new ASTMethod(this, JJTMETHOD);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
Identifier();
jj_consume_token(LPAREN);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LBRACKET:
case LEFT_CURLEY:
case WHITESPACE:
case STRING_LITERAL:
case TRUE:
case FALSE:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case IDENTIFIER:
case LCURLY:
Parameter();
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
jj_la1[28] = jj_gen;
break label_7;
}
jj_consume_token(COMMA);
Parameter();
}
break;
default:
jj_la1[29] = jj_gen;
;
}
jj_consume_token(REFMOD2_RPAREN);
} 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 void Reference() throws ParseException {
/*@bgen(jjtree) Reference */
ASTReference jjtn000 = new ASTReference(this, JJTREFERENCE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
label_8:
while (true) {
if (jj_2_7(2)) {
;
} else {
break label_8;
}
jj_consume_token(DOT);
if (jj_2_8(3)) {
Method();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
Identifier();
break;
default:
jj_la1[30] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
break;
case LCURLY:
jj_consume_token(LCURLY);
jj_consume_token(IDENTIFIER);
label_9:
while (true) {
if (jj_2_9(2)) {
;
} else {
break label_9;
}
jj_consume_token(DOT);
if (jj_2_10(3)) {
Method();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
Identifier();
break;
default:
jj_la1[31] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
jj_consume_token(RCURLY);
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);
}
}
}
final public void True() throws ParseException {
/*@bgen(jjtree) True */
ASTTrue jjtn000 = new ASTTrue(this, JJTTRUE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(TRUE);
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -