📄 elparser.java
字号:
/* Generated By:JavaCC: Do not edit this line. ELParser.java */
package org.jbpm.jpdl.el.parser;
import org.jbpm.jpdl.el.impl.*;
import java.util.ArrayList;
import java.util.List;
/**
* Generated EL parser.
*
* @author Nathan Abramson
* @author Shawn Bayern
*/
public class ELParser implements ELParserConstants {
public static void main(String args[])
throws ParseException
{
ELParser parser = new ELParser (System.in);
parser.ExpressionString ();
}
/*****************************************
* GRAMMAR PRODUCTIONS *
*****************************************/
/**
*
* Returns a String if the expression string is a single String, an
* Expression if the expression string is a single Expression, an
* ExpressionString if it's a mixture of both.
**/
final public Object ExpressionString() throws ParseException {
Object ret = "";
List elems = null;
Object elem;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NON_EXPRESSION_TEXT:
ret = AttrValueString();
break;
case START_EXPRESSION:
ret = AttrValueExpression();
break;
default:
jj_la1[0] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NON_EXPRESSION_TEXT:
case START_EXPRESSION:
;
break;
default:
jj_la1[1] = jj_gen;
break label_1;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NON_EXPRESSION_TEXT:
elem = AttrValueString();
break;
case START_EXPRESSION:
elem = AttrValueExpression();
break;
default:
jj_la1[2] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if (elems == null) {
elems = new ArrayList ();
elems.add (ret);
}
elems.add (elem);
}
if (elems != null) {
ret = new ExpressionString (elems.toArray ());
}
{if (true) return ret;}
throw new Error("Missing return statement in function");
}
final public String AttrValueString() throws ParseException {
ELToken t;
t = jj_consume_token(NON_EXPRESSION_TEXT);
{if (true) return t.image;}
throw new Error("Missing return statement in function");
}
final public Expression AttrValueExpression() throws ParseException {
Expression exp;
jj_consume_token(START_EXPRESSION);
exp = Expression();
jj_consume_token(END_EXPRESSION);
{if (true) return exp;}
throw new Error("Missing return statement in function");
}
final public Expression Expression() throws ParseException {
Expression ret;
if (jj_2_1(2147483647)) {
ret = ConditionalExpression();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
case TRUE:
case FALSE:
case NULL:
case LPAREN:
case MINUS:
case NOT1:
case NOT2:
case EMPTY:
case IDENTIFIER:
ret = OrExpression();
break;
default:
jj_la1[3] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return ret;}
throw new Error("Missing return statement in function");
}
final public Expression OrExpression() throws ParseException {
Expression startExpression;
BinaryOperator operator;
Expression expression;
List operators = null;
List expressions = null;
startExpression = AndExpression();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case OR1:
case OR2:
;
break;
default:
jj_la1[4] = jj_gen;
break label_2;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case OR1:
jj_consume_token(OR1);
break;
case OR2:
jj_consume_token(OR2);
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = OrOperator.SINGLETON;
expression = AndExpression();
if (operators == null) {
operators = new ArrayList ();
expressions = new ArrayList ();
}
operators.add (operator);
expressions.add (expression);
}
if (operators != null) {
{if (true) return new BinaryOperatorExpression (startExpression,
operators,
expressions);}
}
else {
{if (true) return startExpression;}
}
throw new Error("Missing return statement in function");
}
final public Expression AndExpression() throws ParseException {
Expression startExpression;
BinaryOperator operator;
Expression expression;
List operators = null;
List expressions = null;
startExpression = EqualityExpression();
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND1:
case AND2:
;
break;
default:
jj_la1[6] = jj_gen;
break label_3;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND1:
jj_consume_token(AND1);
break;
case AND2:
jj_consume_token(AND2);
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = AndOperator.SINGLETON;
expression = EqualityExpression();
if (operators == null) {
operators = new ArrayList ();
expressions = new ArrayList ();
}
operators.add (operator);
expressions.add (expression);
}
if (operators != null) {
{if (true) return new BinaryOperatorExpression (startExpression,
operators,
expressions);}
}
else {
{if (true) return startExpression;}
}
throw new Error("Missing return statement in function");
}
final public Expression EqualityExpression() throws ParseException {
Expression startExpression;
BinaryOperator operator;
Expression expression;
List operators = null;
List expressions = null;
startExpression = RelationalExpression();
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ1:
case EQ2:
case NE1:
case NE2:
;
break;
default:
jj_la1[8] = jj_gen;
break label_4;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ1:
case EQ2:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ1:
jj_consume_token(EQ1);
break;
case EQ2:
jj_consume_token(EQ2);
break;
default:
jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = EqualsOperator.SINGLETON;
break;
case NE1:
case NE2:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NE1:
jj_consume_token(NE1);
break;
case NE2:
jj_consume_token(NE2);
break;
default:
jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = NotEqualsOperator.SINGLETON;
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
expression = RelationalExpression();
if (operators == null) {
operators = new ArrayList ();
expressions = new ArrayList ();
}
operators.add (operator);
expressions.add (expression);
}
if (operators != null) {
{if (true) return new BinaryOperatorExpression (startExpression,
operators,
expressions);}
}
else {
{if (true) return startExpression;}
}
throw new Error("Missing return statement in function");
}
final public Expression RelationalExpression() throws ParseException {
Expression startExpression;
BinaryOperator operator;
Expression expression;
List operators = null;
List expressions = null;
startExpression = AddExpression();
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case GT1:
case GT2:
case LT1:
case LT2:
case LE1:
case LE2:
case GE1:
case GE2:
;
break;
default:
jj_la1[12] = jj_gen;
break label_5;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LT1:
case LT2:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LT1:
jj_consume_token(LT1);
break;
case LT2:
jj_consume_token(LT2);
break;
default:
jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = LessThanOperator.SINGLETON;
break;
case GT1:
case GT2:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case GT1:
jj_consume_token(GT1);
break;
case GT2:
jj_consume_token(GT2);
break;
default:
jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = GreaterThanOperator.SINGLETON;
break;
case GE1:
case GE2:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case GE1:
jj_consume_token(GE1);
break;
case GE2:
jj_consume_token(GE2);
break;
default:
jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = GreaterThanOrEqualsOperator.SINGLETON;
break;
case LE1:
case LE2:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LE1:
jj_consume_token(LE1);
break;
case LE2:
jj_consume_token(LE2);
break;
default:
jj_la1[16] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = LessThanOrEqualsOperator.SINGLETON;
break;
default:
jj_la1[17] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
expression = AddExpression();
if (operators == null) {
operators = new ArrayList ();
expressions = new ArrayList ();
}
operators.add (operator);
expressions.add (expression);
}
if (operators != null) {
{if (true) return new BinaryOperatorExpression (startExpression,
operators,
expressions);}
}
else {
{if (true) return startExpression;}
}
throw new Error("Missing return statement in function");
}
final public Expression AddExpression() throws ParseException {
Expression startExpression;
BinaryOperator operator;
Expression expression;
List operators = null;
List expressions = null;
startExpression = MultiplyExpression();
label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
;
break;
default:
jj_la1[18] = jj_gen;
break label_6;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
jj_consume_token(PLUS);
operator = PlusOperator.SINGLETON;
break;
case MINUS:
jj_consume_token(MINUS);
operator = MinusOperator.SINGLETON;
break;
default:
jj_la1[19] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
expression = MultiplyExpression();
if (operators == null) {
operators = new ArrayList ();
expressions = new ArrayList ();
}
operators.add (operator);
expressions.add (expression);
}
if (operators != null) {
{if (true) return new BinaryOperatorExpression (startExpression,
operators,
expressions);}
}
else {
{if (true) return startExpression;}
}
throw new Error("Missing return statement in function");
}
final public Expression MultiplyExpression() throws ParseException {
Expression startExpression;
BinaryOperator operator;
Expression expression;
List operators = null;
List expressions = null;
startExpression = UnaryExpression();
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MULTIPLY:
case DIVIDE1:
case DIVIDE2:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -