final public void DirAttributeValue()

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


  final public void DirAttributeValue() throws ParseException {
 /*@bgen(jjtree) DirAttributeValue */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDIRATTRIBUTEVALUE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case OpenQuot:
        jj_consume_token(OpenQuot);
                SimpleNode jjtn001 = new SimpleNode(this, JJTOPENQUOT);
                boolean jjtc001 = true;
                jjtree.openNodeScope(jjtn001);
        try {
                jjtree.closeNodeScope(jjtn001,  true);
                jjtc001 = false;
               jjtn001.processToken(token);
        } finally {
                if (jjtc001) {
                  jjtree.closeNodeScope(jjtn001,  true);
                }
        }
        label_27:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case PredefinedEntityRef:
          case CharRef:
          case Lbrace:
          case LbraceExprEnclosure:
          case LCurlyBraceEscape:
          case RCurlyBraceEscape:
          case EscapeQuot:
          case QuotAttrContentChar:
            ;
            break;
          default:
            jj_la1[115] = jj_gen;
            break label_27;
          }
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case EscapeQuot:
            jj_consume_token(EscapeQuot);
                                                                             SimpleNode jjtn002 = new SimpleNode(this, JJTESCAPEQUOT);
                                                                             boolean jjtc002 = true;
                                                                             jjtree.openNodeScope(jjtn002);
            try {
                                                                             jjtree.closeNodeScope(jjtn002,  true);
                                                                             jjtc002 = false;
                                                            jjtn002.processToken(token);
            } finally {
                                                                             if (jjtc002) {
                                                                               jjtree.closeNodeScope(jjtn002,  true);
                                                                             }
            }
            break;
          case PredefinedEntityRef:
          case CharRef:
          case Lbrace:
          case LbraceExprEnclosure:
          case LCurlyBraceEscape:
          case RCurlyBraceEscape:
          case QuotAttrContentChar:
            QuotAttrValueContent();
            break;
          default:
            jj_la1[116] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
        jj_consume_token(CloseQuot);
                                                                                                                                                                     SimpleNode jjtn003 = new SimpleNode(this, JJTCLOSEQUOT);
                                                                                                                                                                     boolean jjtc003 = true;
                                                                                                                                                                     jjtree.openNodeScope(jjtn003);
        try {
                                                                                                                                                                     jjtree.closeNodeScope(jjtn003,  true);
                                                                                                                                                                     jjtc003 = false;
                                                                                                                                  jjtn003.processToken(token);
        } finally {
                                                                                                                                                                     if (jjtc003) {
                                                                                                                                                                       jjtree.closeNodeScope(jjtn003,  true);
                                                                                                                                                                     }
        }
        break;
      case OpenApos:
        jj_consume_token(OpenApos);
                                                                                                                                                                                                                                   SimpleNode jjtn004 = new SimpleNode(this, JJTOPENAPOS);
                                                                                                                                                                                                                                   boolean jjtc004 = true;
                                                                                                                                                                                                                                   jjtree.openNodeScope(jjtn004);
        try {
                                                                                                                                                                                                                                   jjtree.closeNodeScope(jjtn004,  true);
                                                                                                                                                                                                                                   jjtc004 = false;
                                                                                                                                                                               jjtn004.processToken(token);
        } finally {
                                                                                                                                                                                                                                   if (jjtc004) {
                                                                                                                                                                                                                                     jjtree.closeNodeScope(jjtn004,  true);
                                                                                                                                                                                                                                   }
        }
        label_28:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case PredefinedEntityRef:
          case CharRef:
          case Lbrace:
          case LbraceExprEnclosure:
          case LCurlyBraceEscape:
          case RCurlyBraceEscape:
          case EscapeApos:
          case AposAttrContentChar:
            ;
            break;
          default:
            jj_la1[117] = jj_gen;
            break label_28;
          }
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case EscapeApos:
            jj_consume_token(EscapeApos);
                                                                                                                                                                                                                                                                                                SimpleNode jjtn005 = new SimpleNode(this, JJTESCAPEAPOS);
                                                                                                                                                                                                                                                                                                boolean jjtc005 = true;
                                                                                                                                                                                                                                                                                                jjtree.openNodeScope(jjtn005);
            try {
                                                                                                                                                                                                                                                                                                jjtree.closeNodeScope(jjtn005,  true);
                                                                                                                                                                                                                                                                                                jjtc005 = false;
                                                                                                                                                                                                                            jjtn005.processToken(token);
            } finally {
                                                                                                                                                                                                                                                                                                if (jjtc005) {
                                                                                                                                                                                                                                                                                                  jjtree.closeNodeScope(jjtn005,  true);
                                                                                                                                                                                                                                                                                                }
            }
            break;
          case PredefinedEntityRef:
          case CharRef:
          case Lbrace:
          case LbraceExprEnclosure:
          case LCurlyBraceEscape:
          case RCurlyBraceEscape:
          case AposAttrContentChar:
            AposAttrValueContent();
            break;
          default:
            jj_la1[118] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
        jj_consume_token(CloseApos);
                                                                                                                                                                                                                                                                                                                                                                                        SimpleNode jjtn006 = new SimpleNode(this, JJTCLOSEAPOS);
                                                                                                                                                                                                                                                                                                                                                                                        boolean jjtc006 = true;
                                                                                                                                                                                                                                                                                                                                                                                        jjtree.openNodeScope(jjtn006);
        try {
                                                                                                                                                                                                                                                                                                                                                                                        jjtree.closeNodeScope(jjtn006,  true);
                                                                                                                                                                                                                                                                                                                                                                                        jjtc006 = false;
                                                                                                                                                                                                                                                                                                  jjtn006.processToken(token);
        } finally {
                                                                                                                                                                                                                                                                                                                                                                                        if (jjtc006) {
                                                                                                                                                                                                                                                                                                                                                                                          jjtree.closeNodeScope(jjtn006,  true);
                                                                                                                                                                                                                                                                                                                                                                                        }
        }
        break;
      default:
        jj_la1[119] = 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);
    }
    }
  }