final public void DirElemConstructor()

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


  final public void DirElemConstructor() throws ParseException {
 /*@bgen(jjtree) DirElemConstructor */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDIRELEMCONSTRUCTOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case StartTagOpenRoot:
        jj_consume_token(StartTagOpenRoot);
                       SimpleNode jjtn001 = new SimpleNode(this, JJTSTARTTAGOPENROOT);
                       boolean jjtc001 = true;
                       jjtree.openNodeScope(jjtn001);
        try {
                       jjtree.closeNodeScope(jjtn001,  true);
                       jjtc001 = false;
                      jjtn001.processToken(token);
        } finally {
                       if (jjtc001) {
                         jjtree.closeNodeScope(jjtn001,  true);
                       }
        }
        break;
      case StartTagOpen:
        jj_consume_token(StartTagOpen);
                                                                                              SimpleNode jjtn002 = new SimpleNode(this, JJTSTARTTAGOPEN);
                                                                                              boolean jjtc002 = true;
                                                                                              jjtree.openNodeScope(jjtn002);
        try {
                                                                                              jjtree.closeNodeScope(jjtn002,  true);
                                                                                              jjtc002 = false;
                                                                     jjtn002.processToken(token);
        } finally {
                                                                                              if (jjtc002) {
                                                                                                jjtree.closeNodeScope(jjtn002,  true);
                                                                                              }
        }
        break;
      default:
        jj_la1[107] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(TagQName);
                                                                                                                                                            SimpleNode jjtn003 = new SimpleNode(this, JJTTAGQNAME);
                                                                                                                                                            boolean jjtc003 = true;
                                                                                                                                                            jjtree.openNodeScope(jjtn003);
      try {
                                                                                                                                                            jjtree.closeNodeScope(jjtn003,  true);
                                                                                                                                                            jjtc003 = false;
                                                                                                               jjtn003.processToken(token);
      } finally {
                                                                                                                                                            if (jjtc003) {
                                                                                                                                                              jjtree.closeNodeScope(jjtn003,  true);
                                                                                                                                                            }
      }
      DirAttributeList();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case EmptyTagClose:
        jj_consume_token(EmptyTagClose);
                                                                                                                                                                                                                                              SimpleNode jjtn004 = new SimpleNode(this, JJTEMPTYTAGCLOSE);
                                                                                                                                                                                                                                              boolean jjtc004 = true;
                                                                                                                                                                                                                                              jjtree.openNodeScope(jjtn004);
        try {
                                                                                                                                                                                                                                              jjtree.closeNodeScope(jjtn004,  true);
                                                                                                                                                                                                                                              jjtc004 = false;
                                                                                                                                                                                 jjtn004.processToken(token);
        } finally {
                                                                                                                                                                                                                                              if (jjtc004) {
                                                                                                                                                                                                                                                jjtree.closeNodeScope(jjtn004,  true);
                                                                                                                                                                                                                                              }
        }
        break;
      case StartTagClose:
        jj_consume_token(StartTagClose);
                                                                                                                                                                                                                                                                                                                    SimpleNode jjtn005 = new SimpleNode(this, JJTSTARTTAGCLOSE);
                                                                                                                                                                                                                                                                                                                    boolean jjtc005 = true;
                                                                                                                                                                                                                                                                                                                    jjtree.openNodeScope(jjtn005);
        try {
                                                                                                                                                                                                                                                                                                                    jjtree.closeNodeScope(jjtn005,  true);
                                                                                                                                                                                                                                                                                                                    jjtc005 = false;
                                                                                                                                                                                                                                  jjtn005.processToken(token);
        } finally {
                                                                                                                                                                                                                                                                                                                    if (jjtc005) {
                                                                                                                                                                                                                                                                                                                      jjtree.closeNodeScope(jjtn005,  true);
                                                                                                                                                                                                                                                                                                                    }
        }
        label_25:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case ProcessingInstructionStart:
          case ProcessingInstructionStartForElementContent:
          case CdataSectionStart:
          case CdataSectionStartForElementContent:
          case PredefinedEntityRef:
          case CharRef:
          case StartTagOpen:
          case StartTagOpenRoot:
          case Lbrace:
          case LbraceExprEnclosure:
          case LCurlyBraceEscape:
          case RCurlyBraceEscape:
          case ElementContentChar:
          case XmlCommentStart:
          case XmlCommentStartForElementContent:
            ;
            break;
          default:
            jj_la1[108] = jj_gen;
            break label_25;
          }
          DirElemContent();
        }
        jj_consume_token(EndTagOpen);
                                                                                                                                                                                                                                                                                                                                                                                                        SimpleNode jjtn006 = new SimpleNode(this, JJTENDTAGOPEN);
                                                                                                                                                                                                                                                                                                                                                                                                        boolean jjtc006 = true;
                                                                                                                                                                                                                                                                                                                                                                                                        jjtree.openNodeScope(jjtn006);
        try {
                                                                                                                                                                                                                                                                                                                                                                                                        jjtree.closeNodeScope(jjtn006,  true);
                                                                                                                                                                                                                                                                                                                                                                                                        jjtc006 = false;
                                                                                                                                                                                                                                                                                                 jjtn006.processToken(token);
        } finally {
                                                                                                                                                                                                                                                                                                                                                                                                        if (jjtc006) {
                                                                                                                                                                                                                                                                                                                                                                                                          jjtree.closeNodeScope(jjtn006,  true);
                                                                                                                                                                                                                                                                                                                                                                                                        }
        }
        jj_consume_token(TagQName);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   SimpleNode jjtn007 = new SimpleNode(this, JJTTAGQNAME);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   boolean jjtc007 = true;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   jjtree.openNodeScope(jjtn007);
        try {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   jjtree.closeNodeScope(jjtn007,  true);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   jjtc007 = false;
                                                                                                                                                                                                                                                                                                                                          jjtn007.processToken(token);
        } finally {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   if (jjtc007) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     jjtree.closeNodeScope(jjtn007,  true);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   }
        }
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case S:
          jj_consume_token(S);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      SimpleNode jjtn008 = new SimpleNode(this, JJTS);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      boolean jjtc008 = true;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      jjtree.openNodeScope(jjtn008);
          try {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      jjtree.closeNodeScope(jjtn008,  true);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      jjtc008 = false;
                                                                                                                                                                                                                                                                                                                                                                             jjtn008.processToken(token);
          } finally {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      if (jjtc008) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        jjtree.closeNodeScope(jjtn008,  true);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }
          }
          break;
        default:
          jj_la1[109] = jj_gen;
          ;
        }
        jj_consume_token(EndTagClose);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            SimpleNode jjtn009 = new SimpleNode(this, JJTENDTAGCLOSE);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            boolean jjtc009 = true;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            jjtree.openNodeScope(jjtn009);
        try {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            jjtree.closeNodeScope(jjtn009,  true);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            jjtc009 = false;
                                                                                                                                                                                                                                                                                                                                                                                                                          jjtn009.processToken(token);
        } finally {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (jjtc009) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              jjtree.closeNodeScope(jjtn009,  true);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
        }
        break;
      default:
        jj_la1[110] = 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, true);
    }
    }
  }