📄 parser.java
字号:
final public void False() throws ParseException {
/*@bgen(jjtree) False */
ASTFalse jjtn000 = new ASTFalse(this, JJTFALSE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(FALSE);
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
/**
* This method is responsible for allowing
* all non-grammar text to pass through
* unscathed.
*/
final public void Text() throws ParseException {
/*@bgen(jjtree) Text */
ASTText jjtn000 = new ASTText(this, JJTTEXT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case TEXT:
jj_consume_token(TEXT);
break;
case DOT:
jj_consume_token(DOT);
break;
case RPAREN:
jj_consume_token(RPAREN);
break;
case LPAREN:
jj_consume_token(LPAREN);
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
case FLOATING_POINT_LITERAL:
jj_consume_token(FLOATING_POINT_LITERAL);
break;
case STRING_LITERAL:
jj_consume_token(STRING_LITERAL);
break;
case ESCAPE:
jj_consume_token(ESCAPE);
break;
case LCURLY:
jj_consume_token(LCURLY);
break;
case RCURLY:
jj_consume_token(RCURLY);
break;
default:
jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
/* -----------------------------------------------------------------------
*
* Defined Directive Syntax
*
* ----------------------------------------------------------------------*/
final public void IfStatement() throws ParseException {
/*@bgen(jjtree) IfStatement */
ASTIfStatement jjtn000 = new ASTIfStatement(this, JJTIFSTATEMENT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(IF_DIRECTIVE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[34] = jj_gen;
;
}
jj_consume_token(LPAREN);
Expression();
jj_consume_token(RPAREN);
ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
label_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LPAREN:
case RPAREN:
case ESCAPE_DIRECTIVE:
case SET_DIRECTIVE:
case SINGLE_LINE_COMMENT_START:
case DOUBLE_ESCAPE:
case ESCAPE:
case TEXT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
case STRING_LITERAL:
case IF_DIRECTIVE:
case STOP_DIRECTIVE:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case WORD:
case BRACKETED_WORD:
case IDENTIFIER:
case DOT:
case LCURLY:
case RCURLY:
;
break;
default:
jj_la1[35] = jj_gen;
break label_10;
}
Statement();
}
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, true);
}
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ELSEIF_DIRECTIVE:
label_11:
while (true) {
ElseIfStatement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ELSEIF_DIRECTIVE:
;
break;
default:
jj_la1[36] = jj_gen;
break label_11;
}
}
break;
default:
jj_la1[37] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ELSE_DIRECTIVE:
ElseStatement();
break;
default:
jj_la1[38] = jj_gen;
;
}
jj_consume_token(END);
} 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 ElseStatement() throws ParseException {
/*@bgen(jjtree) ElseStatement */
ASTElseStatement jjtn000 = new ASTElseStatement(this, JJTELSESTATEMENT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(ELSE_DIRECTIVE);
ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
label_12:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LPAREN:
case RPAREN:
case ESCAPE_DIRECTIVE:
case SET_DIRECTIVE:
case SINGLE_LINE_COMMENT_START:
case DOUBLE_ESCAPE:
case ESCAPE:
case TEXT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
case STRING_LITERAL:
case IF_DIRECTIVE:
case STOP_DIRECTIVE:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case WORD:
case BRACKETED_WORD:
case IDENTIFIER:
case DOT:
case LCURLY:
case RCURLY:
;
break;
default:
jj_la1[39] = jj_gen;
break label_12;
}
Statement();
}
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, true);
}
}
} 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 ElseIfStatement() throws ParseException {
/*@bgen(jjtree) ElseIfStatement */
ASTElseIfStatement jjtn000 = new ASTElseIfStatement(this, JJTELSEIFSTATEMENT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(ELSEIF_DIRECTIVE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[40] = jj_gen;
;
}
jj_consume_token(LPAREN);
Expression();
jj_consume_token(RPAREN);
ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
label_13:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LPAREN:
case RPAREN:
case ESCAPE_DIRECTIVE:
case SET_DIRECTIVE:
case SINGLE_LINE_COMMENT_START:
case DOUBLE_ESCAPE:
case ESCAPE:
case TEXT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
case STRING_LITERAL:
case IF_DIRECTIVE:
case STOP_DIRECTIVE:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case WORD:
case BRACKETED_WORD:
case IDENTIFIER:
case DOT:
case LCURLY:
case RCURLY:
;
break;
default:
jj_la1[41] = jj_gen;
break label_13;
}
Statement();
}
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, true);
}
}
} 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);
}
}
}
/**
* Currently support both types of set :
* #set( expr )
* #set expr
*/
final public void SetDirective() throws ParseException {
/*@bgen(jjtree) SetDirective */
ASTSetDirective jjtn000 = new ASTSetDirective(this, JJTSETDIRECTIVE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(SET_DIRECTIVE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[42] = jj_gen;
;
}
Reference();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
jj_la1[43] = jj_gen;
;
}
jj_consume_token(EQUALS);
Expression();
jj_consume_token(RPAREN);
/*
* ensure that inSet is false. Leads to some amusing bugs...
*/
token_source.inSet = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NEWLINE:
jj_consume_token(NEWLINE);
break;
default:
jj_la1[44] = jj_gen;
;
}
} 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 corresponds to the #stop
* directive which just simulates and EOF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -