final public AccessPart AccessPart(int access_type, Recovery next) throws ParseException {
    Token key;
    Token value;
    AccessPart access = new AccessPart();
    Recovery next_values = new Recovery();
    next_values.push(NOT_ACCESSIBLE_T);
    next_values.push(ACCESSIBLE_FOR_NOTIFY_T);
    next_values.push(READ_ONLY_T);
    next_values.push(READ_WRITE_T);
    next_values.push(READ_CREATE_T);
    next_values.push(WRITE_ONLY_T);
    next_values.push(NOT_IMPLEMENTED_T);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case ACCESS_T:
        key = jj_consume_token(ACCESS_T);
        break;
      case MIN_ACCESS_T:
        key = jj_consume_token(MIN_ACCESS_T);
        break;
      case MAX_ACCESS_T:
        key = jj_consume_token(MAX_ACCESS_T);
        break;
      default:
        jj_la1[22] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
            access.key = makeNodeToken(key);
    } catch (ParseException e) {
        access.key = makeNodeToken(access_type, tokenImage[access_type]);
        if (next_values.contains(e.currentToken.next.kind)) {
            handleError(e, next, tokenImage[access_type]);
        } else {
            StringBuffer str = new StringBuffer(tokenImage[access_type]);
            str.deleteCharAt(0);
            str.deleteCharAt(str.length()-1);
            Message.error(getToken(1).beginLine, str + "-clause missing");
            access.value = makeNodeToken(-1);
            {if (true) return access;}
        }
    }
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT_ACCESSIBLE_T:
        value = jj_consume_token(NOT_ACCESSIBLE_T);
        break;
      case ACCESSIBLE_FOR_NOTIFY_T:
        value = jj_consume_token(ACCESSIBLE_FOR_NOTIFY_T);
        break;
      case READ_ONLY_T:
        value = jj_consume_token(READ_ONLY_T);
        break;
      case READ_WRITE_T:
        value = jj_consume_token(READ_WRITE_T);
        break;
      case READ_CREATE_T:
        value = jj_consume_token(READ_CREATE_T);
        break;
      case WRITE_ONLY_T:
        value = jj_consume_token(WRITE_ONLY_T);
        break;
      case NOT_IMPLEMENTED_T:
        value = jj_consume_token(NOT_IMPLEMENTED_T);
        break;
      default:
        jj_la1[23] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
            access.value = makeNodeToken(value);
    } catch (ParseException e) {
        handleError(e, next, "<access value>");
        access.value = makeNodeToken(-1);
    }
        {if (true) return access;}
    throw new Error("Missing return statement in function");
  }