/* Generated By:JJTree: Do not edit this line. D:/projects/xml-xalan-xslt20/xpath_rwapi/src2/org/apache/xpath/impl/parser\XPathTreeConstants.java */

package org.apache.xpath.impl.parser;

public interface XPathTreeConstants
{
  public int JJTXPATH2 = 0;
  public int JJTMATCHPATTERN = 1;
  public int JJTXPATH = 2;
  public int JJTEXPRSEQUENCE = 3;
  public int JJTPATTERN = 4;
  public int JJTPATHPATTERN = 5;
  public int JJTROOT = 6;
  public int JJTROOTDESCENDANTS = 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 JJTSTRINGLITERAL = 16;
  public int JJTVARNAME = 17;
  public int JJTOREXPR = 18;
  public int JJTANDEXPR = 19;
  public int JJTFLWREXPR = 20;
  public int JJTRETURN = 21;
  public int JJTQUANTIFIEDEXPR = 22;
  public int JJTSOME = 23;
  public int JJTEVERY = 24;
  public int JJTIN = 25;
  public int JJTSATISFIES = 26;
  public int JJTIFEXPR = 27;
  public int JJTINSTANCEOFEXPR = 28;
  public int JJTCASTABLEEXPR = 29;
  public int JJTCOMPARISONEXPR = 30;
  public int JJTRANGEEXPR = 31;
  public int JJTADDITIVEEXPR = 32;
  public int JJTMULTIPLICATIVEEXPR = 33;
  public int JJTUNARYEXPR = 34;
  public int JJTMINUS = 35;
  public int JJTPLUS = 36;
  public int JJTUNIONEXPR = 37;
  public int JJTINTERSECTEXCEPTEXPR = 38;
  public int JJTPATHEXPR = 39;
  public int JJTSTEPEXPR = 40;
  public int JJTVALIDATEEXPR = 41;
  public int JJTVALIDATELBRACE = 42;
  public int JJTVALIDATECONTEXT = 43;
  public int JJTSLASH = 44;
  public int JJTLBRACEEXPRENCLOSURE = 45;
  public int JJTRBRACE = 46;
  public int JJTCASTEXPR = 47;
  public int JJTTREATEXPR = 48;
  public int JJTAXISDESCENDANT = 49;
  public int JJTAXISSELF = 50;
  public int JJTAXISDESCENDANTORSELF = 51;
  public int JJTAXISFOLLOWINGSIBLING = 52;
  public int JJTAXISFOLLOWING = 53;
  public int JJTAXISNAMESPACE = 54;
  public int JJTAXISPARENT = 55;
  public int JJTAXISANCESTOR = 56;
  public int JJTAXISPRECEDINGSIBLING = 57;
  public int JJTAXISPRECEDING = 58;
  public int JJTAXISANCESTORORSELF = 59;
  public int JJTNODETEST = 60;
  public int JJTNAMETEST = 61;
  public int JJTQNAME = 62;
  public int JJTSTAR = 63;
  public int JJTNCNAMECOLONSTAR = 64;
  public int JJTSTARCOLONNCNAME = 65;
  public int JJTPROCESSINGINSTRUCTIONTEST = 66;
  public int JJTCOMMENTTEST = 67;
  public int JJTTEXTTEST = 68;
  public int JJTANYKINDTEST = 69;
  public int JJTDOT = 70;
  public int JJTDOTDOT = 71;
  public int JJTPREDICATES = 72;
  public int JJTINTEGERLITERAL = 73;
  public int JJTDECIMALLITERAL = 74;
  public int JJTDOUBLELITERAL = 75;
  public int JJTFUNCTIONCALL = 76;
  public int JJTSCHEMACONTEXT = 77;
  public int JJTINCONTEXT = 78;
  public int JJTSCHEMAGLOBALCONTEXT = 79;
  public int JJTTYPEQNAME = 80;
  public int JJTSCHEMACONTEXTSTEP = 81;
  public int JJTSINGLETYPE = 82;
  public int JJTQMARK = 83;
  public int JJTSEQUENCETYPE = 84;
  public int JJTEMPTY = 85;
  public int JJTELEMENTTYPE = 86;
  public int JJTATTRIBUTETYPE = 87;
  public int JJTNODE = 88;
  public int JJTPROCESSINGINSTRUCTION = 89;
  public int JJTCOMMENT = 90;
  public int JJTTEXT = 91;
  public int JJTDOCUMENT = 92;
  public int JJTITEM = 93;
  public int JJTUNTYPED = 94;
  public int JJTATOMICVALUE = 95;
  public int JJTELEMORATTRTYPE = 96;
  public int JJTSCHEMATYPE = 97;
  public int JJTOFTYPE = 98;
  public int JJTATOMICTYPE = 99;
  public int JJTMULTIPLY = 100;


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