/* Generated By:JJTree: Do not edit this line. F:/xalan3/xml-xalan/java/xpath-src\XPathTreeConstants.java */

package org.apache.xpath.parser;

public interface XPathTreeConstants
{
  public int JJTXPATH2 = 0;
  public int JJTMATCHPATTERN = 1;
  public int JJTEXPRSEQUENCE = 2;
  public int JJTPATTERN = 3;
  public int JJTPATHPATTERN = 4;
  public int JJTROOT = 5;
  public int JJTROOTDESCENDANTS = 6;
  public int JJTSLASH = 7;
  public int JJTSLASHSLASH = 8;
  public int JJTVOID = 9;
  public int JJTPATTERNSTEP = 10;
  public int JJTAXISCHILD = 11;
  public int JJTAXISATTRIBUTE = 12;
  public int JJTAT = 13;
  public int JJTIDKEYPATTERN = 14;
  public int JJTQNAMELPAR = 15;
  public int JJTVARNAME = 16;
  public int JJTOREXPR = 17;
  public int JJTANDEXPR = 18;
  public int JJTFLWREXPR = 19;
  public int JJTRETURN = 20;
  public int JJTQUANTIFIEDEXPR = 21;
  public int JJTSOME = 22;
  public int JJTEVERY = 23;
  public int JJTIN = 24;
  public int JJTSATISFIES = 25;
  public int JJTIFEXPR = 26;
  public int JJTIFLPAR = 27;
  public int JJTTHEN = 28;
  public int JJTELSE = 29;
  public int JJTINSTANCEOFEXPR = 30;
  public int JJTINSTANCEOF = 31;
  public int JJTCOMPARISONEXPR = 32;
  public int JJTRANGEEXPR = 33;
  public int JJTADDITIVEEXPR = 34;
  public int JJTMULTIPLICATIVEEXPR = 35;
  public int JJTUNIONEXPR = 36;
  public int JJTINTERSECTEXCEPTEXPR = 37;
  public int JJTUNARYEXPR = 38;
  public int JJTMINUS = 39;
  public int JJTPLUS = 40;
  public int JJTPATHEXPR = 41;
  public int JJTSTEPEXPR = 42;
  public int JJTFORCLAUSE = 43;
  public int JJTVALIDATEEXPR = 44;
  public int JJTVALIDATE = 45;
  public int JJTLBRACE = 46;
  public int JJTRBRACE = 47;
  public int JJTCASTEXPR = 48;
  public int JJTCASTAS = 49;
  public int JJTTREATAS = 50;
  public int JJTAXISDESCENDANT = 51;
  public int JJTAXISSELF = 52;
  public int JJTAXISDESCENDANTORSELF = 53;
  public int JJTAXISFOLLOWINGSIBLING = 54;
  public int JJTAXISFOLLOWING = 55;
  public int JJTAXISNAMESPACE = 56;
  public int JJTAXISPARENT = 57;
  public int JJTAXISANCESTOR = 58;
  public int JJTAXISPRECEDINGSIBLING = 59;
  public int JJTAXISPRECEDING = 60;
  public int JJTAXISANCESTORORSELF = 61;
  public int JJTNODETEST = 62;
  public int JJTNAMETEST = 63;
  public int JJTQNAME = 64;
  public int JJTSTAR = 65;
  public int JJTNCNAMECOLONSTAR = 66;
  public int JJTSTARCOLONNCNAME = 67;
  public int JJTKINDTEST = 68;
  public int JJTPROCESSINGINSTRUCTIONTEST = 69;
  public int JJTSTRINGLITERAL = 70;
  public int JJTCOMMENTTEST = 71;
  public int JJTTEXTTEST = 72;
  public int JJTANYKINDTEST = 73;
  public int JJTABBREVIATEDFORWARDSTEP = 74;
  public int JJTDOT = 75;
  public int JJTDOTDOT = 76;
  public int JJTPREDICATES = 77;
  public int JJTLBRACK = 78;
  public int JJTRBRACK = 79;
  public int JJTINTEGERLITERAL = 80;
  public int JJTDECIMALLITERAL = 81;
  public int JJTDOUBLELITERAL = 82;
  public int JJTFUNCTIONCALL = 83;
  public int JJTSCHEMACONTEXT = 84;
  public int JJTSCHEMAGLOBALCONTEXT = 85;
  public int JJTTYPE = 86;
  public int JJTSCHEMACONTEXTSTEP = 87;
  public int JJTSEQUENCETYPE = 88;
  public int JJTEMPTY = 89;
  public int JJTITEMTYPE = 90;
  public int JJTELEMENTTYPE = 91;
  public int JJTATTRIBUTETYPE = 92;
  public int JJTNODE = 93;
  public int JJTPROCESSINGINSTRUCTION = 94;
  public int JJTCOMMENT = 95;
  public int JJTTEXT = 96;
  public int JJTDOCUMENT = 97;
  public int JJTITEM = 98;
  public int JJTUNTYPED = 99;
  public int JJTATOMICVALUE = 100;
  public int JJTELEMORATTRTYPE = 101;
  public int JJTSCHEMATYPE = 102;
  public int JJTOFTYPE = 103;
  public int JJTATOMICTYPE = 104;
  public int JJTOCCURRENCEINDICATOR = 105;
  public int JJTMULTIPLY = 106;
  public int JJTQMARK = 107;


  public String[] jjtNodeName = {
    "XPath2",
    "MatchPattern",
    "ExprSequence",
    "Pattern",
    "PathPattern",
    "Root",
    "RootDescendants",
    "Slash",
    "SlashSlash",
    "void",
    "PatternStep",
    "AxisChild",
    "AxisAttribute",
    "At",
    "IdKeyPattern",
    "QNameLpar",
    "VarName",
    "OrExpr",
    "AndExpr",
    "FLWRExpr",
    "Return",
    "QuantifiedExpr",
    "Some",
    "Every",
    "In",
    "Satisfies",
    "IfExpr",
    "IfLpar",
    "Then",
    "Else",
    "InstanceofExpr",
    "Instanceof",
    "ComparisonExpr",
    "RangeExpr",
    "AdditiveExpr",
    "MultiplicativeExpr",
    "UnionExpr",
    "IntersectExceptExpr",
    "UnaryExpr",
    "Minus",
    "Plus",
    "PathExpr",
    "StepExpr",
    "ForClause",
    "ValidateExpr",
    "Validate",
    "Lbrace",
    "Rbrace",
    "CastExpr",
    "CastAs",
    "TreatAs",
    "AxisDescendant",
    "AxisSelf",
    "AxisDescendantOrSelf",
    "AxisFollowingSibling",
    "AxisFollowing",
    "AxisNamespace",
    "AxisParent",
    "AxisAncestor",
    "AxisPrecedingSibling",
    "AxisPreceding",
    "AxisAncestorOrSelf",
    "NodeTest",
    "NameTest",
    "QName",
    "Star",
    "NCNameColonStar",
    "StarColonNCName",
    "KindTest",
    "ProcessingInstructionTest",
    "StringLiteral",
    "CommentTest",
    "TextTest",
    "AnyKindTest",
    "AbbreviatedForwardStep",
    "Dot",
    "DotDot",
    "Predicates",
    "Lbrack",
    "Rbrack",
    "IntegerLiteral",
    "DecimalLiteral",
    "DoubleLiteral",
    "FunctionCall",
    "SchemaContext",
    "SchemaGlobalContext",
    "Type",
    "SchemaContextStep",
    "SequenceType",
    "Empty",
    "ItemType",
    "ElementType",
    "AttributeType",
    "Node",
    "ProcessingInstruction",
    "Comment",
    "Text",
    "Document",
    "Item",
    "Untyped",
    "AtomicValue",
    "ElemOrAttrType",
    "SchemaType",
    "OfType",
    "AtomicType",
    "OccurrenceIndicator",
    "Multiply",
    "QMark",
  };
}
