final public Name Identifier()

in jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/sql/JCRSQLParser.java [1091:1211]


  final public Name Identifier() throws ParseException {
 /*@bgen(jjtree) Identifier */
  ASTIdentifier jjtn000 = new ASTIdentifier(JJTIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t = null;
  Name name = null;
  boolean pseudoProperty = false;
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case REGULAR_IDENTIFIER:
        t = jj_consume_token(REGULAR_IDENTIFIER);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case LEFT_PAREN:
          jj_consume_token(LEFT_PAREN);
          jj_consume_token(RIGHT_PAREN);
                                                            pseudoProperty = true;
          break;
        default:
          jj_la1[29] = jj_gen;
          ;
        }
        try {
          String jcrName = t.image;
          if (pseudoProperty) {
            jcrName += "()";
          }
          jjtn000.setName(resolver.getQName(jcrName));
        } catch (NameException e) {
          {if (true) throw new ParseException(e.getMessage());}
        } catch (NamespaceException e) {
          {if (true) throw new ParseException(e.getMessage());}
        }
        break;
      case DELIMITED_IDENTIFIER:
        t = jj_consume_token(DELIMITED_IDENTIFIER);
        try {
          jjtn000.setName(resolver.getQName(t.image.substring(1, t.image.length()-1)));
        } catch (NameException e) {
          {if (true) throw new ParseException(e.getMessage());}
        } catch (NamespaceException e) {
          {if (true) throw new ParseException(e.getMessage());}
        }
        break;
      case BY:
      case IN:
      case OR:
      case IS:
      case AND:
      case LIKE:
      case NULL:
      case FROM:
      case ORDER:
      case WHERE:
      case SELECT:
      case BETWEEN:
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case BY:
          // or any keyword
                    t = jj_consume_token(BY);
          break;
        case IN:
          t = jj_consume_token(IN);
          break;
        case OR:
          t = jj_consume_token(OR);
          break;
        case IS:
          t = jj_consume_token(IS);
          break;
        case AND:
          t = jj_consume_token(AND);
          break;
        case LIKE:
          t = jj_consume_token(LIKE);
          break;
        case NULL:
          t = jj_consume_token(NULL);
          break;
        case FROM:
          t = jj_consume_token(FROM);
          break;
        case ORDER:
          t = jj_consume_token(ORDER);
          break;
        case WHERE:
          t = jj_consume_token(WHERE);
          break;
        case SELECT:
          t = jj_consume_token(SELECT);
          break;
        case BETWEEN:
          t = jj_consume_token(BETWEEN);
          break;
        default:
          jj_la1[30] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        try {
          jjtn000.setName(resolver.getQName(t.image));
        } catch (NameException e) {
          {if (true) throw new ParseException(e.getMessage());}
        } catch (NamespaceException e) {
          {if (true) throw new ParseException(e.getMessage());}
        }
        break;
      default:
        jj_la1[31] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    {if (true) return jjtn000.getName();}
    } finally {
    if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
    }
    }
    throw new Error("Missing return statement in function");
  }