code: private JsDocToken parseClosurePrimitiveTag(JsDocToken token) {
      if (token != JsDocToken.LEFT_CURLY) {
        addParserWarning("msg.jsdoc.missing.lc");
        return token;
      } else if (match(JsDocToken.STRING)) {
        String name = stream.getString();
        if (!closurePrimitiveNames.contains(name)) {
          addParserWarning("msg.jsdoc.closurePrimitive.invalid", name);
        } else if (!jsdocBuilder.recordClosurePrimitiveId(name)) {
          addParserWarning("msg.jsdoc.closurePrimitive.extra");
        }
        token = next();
      } else {
        addParserWarning("msg.jsdoc.closurePrimitive.missing");
        return token;
      }
  
      if (!match(JsDocToken.RIGHT_CURLY)) {
        addParserWarning("msg.jsdoc.missing.rc");
      } else {
        token = next();
      }
      return eatUntilEOLIfNotAnnotation();
    }
docs: Parse a {@code @closurePrimitive} tag
  
  @param token The current token.