private boolean parseNameClassPart() {
    final IElementType t = currentToken();
    PsiBuilder.Marker marker = myBuilder.mark();
    if (IDENTIFIER_OR_KEYWORD.contains(t)) {
      advance();
    } else if (PREFIXED_NAME == t) { // CName
      makeName();
    } else if (STAR == t) { // anyName
      advance();
      parseExceptNameClass();
    } else if (PREFIXED_STAR == t) { // nsName
      makeName();
      parseExceptNameClass();
    } else if (LPAREN == t) {
      advance();
      if (parseNameClass()) {
        match(RPAREN, RelaxngBundle.message("relaxng.parse.error.rparen-expected"));
      }
    } else {
      marker.drop();
      return false;
    }
    marker.done(RncElementTypes.NAME_CLASS);
    return true;
  }
private boolean parseNameClassPart()