}
// 3.
final public ParsedExpression parse() throws ParseException {
Token t = null;
ParsedExpression pe = new ParsedExpression();
Term term = null;
label_1:
while(true) {
switch((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case NON_EXPRESSION_TEXT:
case START_EXPRESSION:
case ESCAPED_START_EXPRESSION:
;
break;
default:
jj_la1[0] = jj_gen;
break label_1;
}
switch((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case NON_EXPRESSION_TEXT:
term = parseLiteralTerm();
pe.addTerm(term);
break;
case START_EXPRESSION:
jj_consume_token(START_EXPRESSION);
term = parseExpression();
jj_consume_token(END_EXPRESSION);
pe.addTerm(term);
break;
case ESCAPED_START_EXPRESSION:
jj_consume_token(ESCAPED_START_EXPRESSION);
term = parseExpression();
jj_consume_token(END_EXPRESSION);
pe.addTerm(new LiteralTerm("\\"));
pe.addTerm(term);
break;
default:
jj_la1[1] = jj_gen;
jj_consume_token(-1);
throw new ParseException();