/* Generated By:JavaCC: Do not edit this line. ELParserTreeConstants.java Version 5.0 */
package org.apache.el.parser;

public interface ELParserTreeConstants
{
  public int JJTCOMPOSITEEXPRESSION = 0;
  public int JJTLITERALEXPRESSION = 1;
  public int JJTDEFERREDEXPRESSION = 2;
  public int JJTDYNAMICEXPRESSION = 3;
  public int JJTVOID = 4;
  public int JJTSEMICOLON = 5;
  public int JJTASSIGN = 6;
  public int JJTLAMBDAEXPRESSION = 7;
  public int JJTLAMBDAPARAMETERS = 8;
  public int JJTCHOICE = 9;
  public int JJTOR = 10;
  public int JJTAND = 11;
  public int JJTEQUAL = 12;
  public int JJTNOTEQUAL = 13;
  public int JJTLESSTHAN = 14;
  public int JJTGREATERTHAN = 15;
  public int JJTLESSTHANEQUAL = 16;
  public int JJTGREATERTHANEQUAL = 17;
  public int JJTCONCATENATION = 18;
  public int JJTPLUS = 19;
  public int JJTMINUS = 20;
  public int JJTMULT = 21;
  public int JJTDIV = 22;
  public int JJTMOD = 23;
  public int JJTNEGATIVE = 24;
  public int JJTNOT = 25;
  public int JJTEMPTY = 26;
  public int JJTVALUE = 27;
  public int JJTDOTSUFFIX = 28;
  public int JJTBRACKETSUFFIX = 29;
  public int JJTMETHODPARAMETERS = 30;
  public int JJTSETDATA = 31;
  public int JJTLISTDATA = 32;
  public int JJTMAPDATA = 33;
  public int JJTMAPENTRY = 34;
  public int JJTIDENTIFIER = 35;
  public int JJTFUNCTION = 36;
  public int JJTTRUE = 37;
  public int JJTFALSE = 38;
  public int JJTFLOATINGPOINT = 39;
  public int JJTINTEGER = 40;
  public int JJTSTRING = 41;
  public int JJTNULL = 42;


  public String[] jjtNodeName = {
    "CompositeExpression",
    "LiteralExpression",
    "DeferredExpression",
    "DynamicExpression",
    "void",
    "Semicolon",
    "Assign",
    "LambdaExpression",
    "LambdaParameters",
    "Choice",
    "Or",
    "And",
    "Equal",
    "NotEqual",
    "LessThan",
    "GreaterThan",
    "LessThanEqual",
    "GreaterThanEqual",
    "Concatenation",
    "Plus",
    "Minus",
    "Mult",
    "Div",
    "Mod",
    "Negative",
    "Not",
    "Empty",
    "Value",
    "DotSuffix",
    "BracketSuffix",
    "MethodParameters",
    "SetData",
    "ListData",
    "MapData",
    "MapEntry",
    "Identifier",
    "Function",
    "True",
    "False",
    "FloatingPoint",
    "Integer",
    "String",
    "Null",
  };
}
/* JavaCC - OriginalChecksum=96680d397165a1214a1ad1f24011d5c1 (do not edit this line) */
