final public void PathExpr()

in jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/xpath/XPath.java [4308:4505]


  final public void PathExpr() throws ParseException {
 /*@bgen(jjtree) #PathExpr(> 0) */
  SimpleNode jjtn000 = new SimpleNode(this, JJTPATHEXPR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Root:
        jj_consume_token(Root);
            SimpleNode jjtn001 = new SimpleNode(this, JJTROOT);
            boolean jjtc001 = true;
            jjtree.openNodeScope(jjtn001);
        try {
            jjtree.closeNodeScope(jjtn001,  true);
            jjtc001 = false;
           jjtn001.processToken(token);
        } finally {
            if (jjtc001) {
              jjtree.closeNodeScope(jjtn001,  true);
            }
        }
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IntegerLiteral:
        case DecimalLiteral:
        case DoubleLiteral:
        case StringLiteral:
        case ProcessingInstructionStart:
        case ProcessingInstructionStartForElementContent:
        case AxisChild:
        case AxisDescendant:
        case AxisParent:
        case AxisAttribute:
        case AxisSelf:
        case AxisDescendantOrSelf:
        case AxisAncestor:
        case AxisFollowingSibling:
        case AxisPrecedingSibling:
        case AxisFollowing:
        case AxisPreceding:
        case AxisAncestorOrSelf:
        case VariableIndicator:
        case ElementType:
        case AttributeType:
        case SchemaElementType:
        case SchemaAttributeType:
        case OrderedOpen:
        case UnorderedOpen:
        case ElementQNameLbrace:
        case AttributeQNameLbrace:
        case PINCNameLbrace:
        case PILbrace:
        case CommentLbrace:
        case ElementLbrace:
        case AttributeLbrace:
        case TextLbrace:
        case Star:
        case NCNameColonStar:
        case StarColonNCName:
        case Lpar:
        case At:
        case DocumentLpar:
        case DocumentLparForKindTest:
        case DocumentLbrace:
        case NodeLpar:
        case CommentLpar:
        case TextLpar:
        case ProcessingInstructionLpar:
        case ElementTypeForKindTest:
        case ElementTypeForDocumentTest:
        case AttributeTypeForKindTest:
        case SchemaElementTypeForKindTest:
        case SchemaElementTypeForDocumentTest:
        case SchemaAttributeTypeForKindTest:
        case ProcessingInstructionLparForKindTest:
        case TextLparForKindTest:
        case CommentLparForKindTest:
        case NodeLparForKindTest:
        case Dot:
        case DotDot:
        case QNameLpar:
        case StartTagOpen:
        case StartTagOpenRoot:
        case XmlCommentStart:
        case XmlCommentStartForElementContent:
        case QName:
          RelativePathExpr();
          break;
        default:
          jj_la1[84] = jj_gen;
          ;
        }
        break;
      case RootDescendants:
        jj_consume_token(RootDescendants);
                                                                                                 SimpleNode jjtn002 = new SimpleNode(this, JJTROOTDESCENDANTS);
                                                                                                 boolean jjtc002 = true;
                                                                                                 jjtree.openNodeScope(jjtn002);
        try {
                                                                                                 jjtree.closeNodeScope(jjtn002,  true);
                                                                                                 jjtc002 = false;
                                                                                    jjtn002.processToken(token);
        } finally {
                                                                                                 if (jjtc002) {
                                                                                                   jjtree.closeNodeScope(jjtn002,  true);
                                                                                                 }
        }
        RelativePathExpr();
        break;
      case IntegerLiteral:
      case DecimalLiteral:
      case DoubleLiteral:
      case StringLiteral:
      case ProcessingInstructionStart:
      case ProcessingInstructionStartForElementContent:
      case AxisChild:
      case AxisDescendant:
      case AxisParent:
      case AxisAttribute:
      case AxisSelf:
      case AxisDescendantOrSelf:
      case AxisAncestor:
      case AxisFollowingSibling:
      case AxisPrecedingSibling:
      case AxisFollowing:
      case AxisPreceding:
      case AxisAncestorOrSelf:
      case VariableIndicator:
      case ElementType:
      case AttributeType:
      case SchemaElementType:
      case SchemaAttributeType:
      case OrderedOpen:
      case UnorderedOpen:
      case ElementQNameLbrace:
      case AttributeQNameLbrace:
      case PINCNameLbrace:
      case PILbrace:
      case CommentLbrace:
      case ElementLbrace:
      case AttributeLbrace:
      case TextLbrace:
      case Star:
      case NCNameColonStar:
      case StarColonNCName:
      case Lpar:
      case At:
      case DocumentLpar:
      case DocumentLparForKindTest:
      case DocumentLbrace:
      case NodeLpar:
      case CommentLpar:
      case TextLpar:
      case ProcessingInstructionLpar:
      case ElementTypeForKindTest:
      case ElementTypeForDocumentTest:
      case AttributeTypeForKindTest:
      case SchemaElementTypeForKindTest:
      case SchemaElementTypeForDocumentTest:
      case SchemaAttributeTypeForKindTest:
      case ProcessingInstructionLparForKindTest:
      case TextLparForKindTest:
      case CommentLparForKindTest:
      case NodeLparForKindTest:
      case Dot:
      case DotDot:
      case QNameLpar:
      case StartTagOpen:
      case StartTagOpenRoot:
      case XmlCommentStart:
      case XmlCommentStartForElementContent:
      case QName:
        RelativePathExpr();
        break;
      default:
        jj_la1[85] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    } catch (Throwable jjte000) {
    if (jjtc000) {
      jjtree.clearNodeScope(jjtn000);
      jjtc000 = false;
    } else {
      jjtree.popNode();
    }
    if (jjte000 instanceof RuntimeException) {
      {if (true) throw (RuntimeException)jjte000;}
    }
    if (jjte000 instanceof ParseException) {
      {if (true) throw (ParseException)jjte000;}
    }
    {if (true) throw (Error)jjte000;}
    } finally {
    if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 0);
    }
    }
  }