elparser.java

来自「jakarta-taglibs」· Java 代码 · 共 1,205 行 · 第 1/3 页

JAVA
1,205
字号
/* Generated By:JavaCC: Do not edit this line. ELParser.java */
package org.apache.taglibs.standard.lang.jstl.parser;

import java.util.ArrayList;
import java.util.List;

import org.apache.taglibs.standard.lang.jstl.AndOperator;
import org.apache.taglibs.standard.lang.jstl.ArraySuffix;
import org.apache.taglibs.standard.lang.jstl.BinaryOperator;
import org.apache.taglibs.standard.lang.jstl.BinaryOperatorExpression;
import org.apache.taglibs.standard.lang.jstl.BooleanLiteral;
import org.apache.taglibs.standard.lang.jstl.ComplexValue;
import org.apache.taglibs.standard.lang.jstl.DivideOperator;
import org.apache.taglibs.standard.lang.jstl.EmptyOperator;
import org.apache.taglibs.standard.lang.jstl.EqualsOperator;
import org.apache.taglibs.standard.lang.jstl.Expression;
import org.apache.taglibs.standard.lang.jstl.ExpressionString;
import org.apache.taglibs.standard.lang.jstl.FloatingPointLiteral;
import org.apache.taglibs.standard.lang.jstl.FunctionInvocation;
import org.apache.taglibs.standard.lang.jstl.GreaterThanOperator;
import org.apache.taglibs.standard.lang.jstl.GreaterThanOrEqualsOperator;
import org.apache.taglibs.standard.lang.jstl.IntegerLiteral;
import org.apache.taglibs.standard.lang.jstl.LessThanOperator;
import org.apache.taglibs.standard.lang.jstl.LessThanOrEqualsOperator;
import org.apache.taglibs.standard.lang.jstl.Literal;
import org.apache.taglibs.standard.lang.jstl.MinusOperator;
import org.apache.taglibs.standard.lang.jstl.ModulusOperator;
import org.apache.taglibs.standard.lang.jstl.MultiplyOperator;
import org.apache.taglibs.standard.lang.jstl.NamedValue;
import org.apache.taglibs.standard.lang.jstl.NotEqualsOperator;
import org.apache.taglibs.standard.lang.jstl.NotOperator;
import org.apache.taglibs.standard.lang.jstl.NullLiteral;
import org.apache.taglibs.standard.lang.jstl.OrOperator;
import org.apache.taglibs.standard.lang.jstl.PlusOperator;
import org.apache.taglibs.standard.lang.jstl.PropertySuffix;
import org.apache.taglibs.standard.lang.jstl.StringLiteral;
import org.apache.taglibs.standard.lang.jstl.UnaryMinusOperator;
import org.apache.taglibs.standard.lang.jstl.UnaryOperator;
import org.apache.taglibs.standard.lang.jstl.UnaryOperatorExpression;
import org.apache.taglibs.standard.lang.jstl.ValueSuffix;

/**
 * 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 {
  Token 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;
    ret = OrExpression();
    {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[3] = 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[4] = 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[5] = 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[6] = 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[7] = 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[8] = 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[9] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
                          operator = NotEqualsOperator.SINGLETON;
        break;
      default:
        jj_la1[10] = 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[11] = 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[12] = 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[13] = 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[14] = 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:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?