/* Generated By:JJTree&JavaCC: Do not edit this line. XPathConstants.java */
package org.apache.xpath.parser;

public interface XPathConstants {

  int EOF = 0;
  int ExprComment = 1;
  int skip_ = 3;
  int S = 4;
  int AxisChild = 5;
  int AxisDescendant = 6;
  int AxisParent = 7;
  int AxisAttribute = 8;
  int AxisSelf = 9;
  int AxisDescendantOrSelf = 10;
  int AxisAncestor = 11;
  int AxisFollowingSibling = 12;
  int AxisPrecedingSibling = 13;
  int AxisFollowing = 14;
  int AxisPreceding = 15;
  int AxisNamespace = 16;
  int AxisAncestorOrSelf = 17;
  int Or = 18;
  int And = 19;
  int Div = 20;
  int Idiv = 21;
  int Mod = 22;
  int Multiply = 23;
  int In = 24;
  int Satisfies = 25;
  int Return = 26;
  int Then = 27;
  int Else = 28;
  int To = 29;
  int Intersect = 30;
  int Union = 31;
  int Except = 32;
  int Precedes = 33;
  int Follows = 34;
  int Instanceof = 35;
  int Item = 36;
  int ElementType = 37;
  int AttributeType = 38;
  int ElementQNameLbrace = 39;
  int AttributeQNameLbrace = 40;
  int ElementLbrace = 41;
  int AttributeLbrace = 42;
  int DefaultElement = 43;
  int DefaultFunction = 44;
  int OfType = 45;
  int AtomicValue = 46;
  int Type = 47;
  int Node = 48;
  int Empty = 49;
  int Nmstart = 50;
  int Nmchar = 51;
  int Star = 52;
  int NCNameColonStar = 53;
  int StarColonNCName = 54;
  int Root = 55;
  int RootDescendants = 56;
  int Slash = 57;
  int SlashSlash = 58;
  int Equals = 59;
  int Is = 60;
  int NotEquals = 61;
  int IsNot = 62;
  int LtEquals = 63;
  int LtLt = 64;
  int GtEquals = 65;
  int GtGt = 66;
  int FortranEq = 67;
  int FortranNe = 68;
  int FortranGt = 69;
  int FortranGe = 70;
  int FortranLt = 71;
  int FortranLe = 72;
  int Lt = 73;
  int Gt = 74;
  int Minus = 75;
  int Plus = 76;
  int QMark = 77;
  int Vbar = 78;
  int Lpar = 79;
  int At = 80;
  int Lbrack = 81;
  int Rbrack = 82;
  int Rpar = 83;
  int Some = 84;
  int Every = 85;
  int ForVariable = 86;
  int CastAs = 87;
  int TreatAs = 88;
  int Validate = 89;
  int Digits = 90;
  int IntegerLiteral = 91;
  int DecimalLiteral = 92;
  int DoubleLiteral = 93;
  int Comment = 94;
  int Document = 95;
  int DocumentLbrace = 96;
  int Text = 97;
  int Untyped = 98;
  int ProcessingInstruction = 99;
  int NodeLpar = 100;
  int CommentLpar = 101;
  int TextLpar = 102;
  int ProcessingInstructionLpar = 103;
  int IfLpar = 104;
  int Comma = 105;
  int StringLiteral = 106;
  int NamespaceURLLiteral = 107;
  int Dot = 108;
  int DotDot = 109;
  int NCName = 110;
  int Prefix = 111;
  int LocalPart = 112;
  int VariableIndicator = 113;
  int VarName = 114;
  int QName = 115;
  int FuncName = 116;
  int FuncPListOpen = 117;
  int QNameLpar = 118;
  int Lbrace = 119;
  int Rbrace = 120;
  int Char = 121;
  int WhitespaceChar = 122;
  int Letter = 123;
  int BaseChar = 124;
  int Ideographic = 125;
  int CombiningChar = 126;
  int Digit = 127;
  int Extender = 128;

  int DEFAULT = 0;
  int ELEMENT_CONTENT = 1;
  int OPERATOR = 2;
  int QNAME = 3;
  int NAMESPACEDECL = 4;
  int XMLSPACE_DECL = 5;
  int ITEMTYPE = 6;
  int FUNCDEF = 7;
  int NAMESPACEKEYWORD = 8;
  int START_TAG = 9;
  int END_TAG = 10;
  int VARNAME = 11;
  int QUOT_ATTRIBUTE_CONTENT = 12;
  int APOS_ATTRIBUTE_CONTENT = 13;
  int CDATA_SECTION = 14;
  int PROCESSING_INSTRUCTION = 15;
  int XML_COMMENT = 16;
  int XQUERY_COMMENT = 17;

  String[] tokenImage = {
    "<EOF>",
    "<ExprComment>",
    "<token of kind 2>",
    "<skip_>",
    "<S>",
    "<AxisChild>",
    "<AxisDescendant>",
    "<AxisParent>",
    "<AxisAttribute>",
    "<AxisSelf>",
    "<AxisDescendantOrSelf>",
    "<AxisAncestor>",
    "<AxisFollowingSibling>",
    "<AxisPrecedingSibling>",
    "<AxisFollowing>",
    "<AxisPreceding>",
    "<AxisNamespace>",
    "<AxisAncestorOrSelf>",
    "\"or\"",
    "\"and\"",
    "\"div\"",
    "\"idiv\"",
    "\"mod\"",
    "\"*\"",
    "\"in\"",
    "\"satisfies\"",
    "\"return\"",
    "\"then\"",
    "\"else\"",
    "\"to\"",
    "\"intersect\"",
    "\"union\"",
    "\"except\"",
    "\"precedes\"",
    "\"follows\"",
    "<Instanceof>",
    "\"item\"",
    "\"element\"",
    "\"attribute\"",
    "<ElementQNameLbrace>",
    "<AttributeQNameLbrace>",
    "<ElementLbrace>",
    "<AttributeLbrace>",
    "<DefaultElement>",
    "<DefaultFunction>",
    "<OfType>",
    "<AtomicValue>",
    "\"type\"",
    "\"node\"",
    "\"empty\"",
    "<Nmstart>",
    "<Nmchar>",
    "\"*\"",
    "<NCNameColonStar>",
    "<StarColonNCName>",
    "\"/\"",
    "\"//\"",
    "\"/\"",
    "\"//\"",
    "\"=\"",
    "\"is\"",
    "\"!=\"",
    "\"isnot\"",
    "\"<=\"",
    "\"<<\"",
    "\">=\"",
    "\">>\"",
    "\"eq\"",
    "\"ne\"",
    "\"gt\"",
    "\"ge\"",
    "\"lt\"",
    "\"le\"",
    "\"<\"",
    "\">\"",
    "\"-\"",
    "\"+\"",
    "\"?\"",
    "\"|\"",
    "\"(\"",
    "\"@\"",
    "\"[\"",
    "\"]\"",
    "\")\"",
    "<Some>",
    "<Every>",
    "<ForVariable>",
    "<CastAs>",
    "<TreatAs>",
    "\"validate\"",
    "<Digits>",
    "<IntegerLiteral>",
    "<DecimalLiteral>",
    "<DoubleLiteral>",
    "\"comment\"",
    "\"document\"",
    "<DocumentLbrace>",
    "\"text\"",
    "\"untyped\"",
    "\"processing-instruction\"",
    "<NodeLpar>",
    "<CommentLpar>",
    "<TextLpar>",
    "<ProcessingInstructionLpar>",
    "<IfLpar>",
    "\",\"",
    "<StringLiteral>",
    "<NamespaceURLLiteral>",
    "\".\"",
    "\"..\"",
    "<NCName>",
    "<Prefix>",
    "<LocalPart>",
    "\"$\"",
    "<VarName>",
    "<QName>",
    "<FuncName>",
    "\"(\"",
    "<QNameLpar>",
    "\"{\"",
    "\"}\"",
    "<Char>",
    "<WhitespaceChar>",
    "<Letter>",
    "<BaseChar>",
    "<Ideographic>",
    "<CombiningChar>",
    "<Digit>",
    "<Extender>",
  };

}
