function addComment(to_ret_token, comment, options) {
  const { commentStyle, indentation } = options;
  let { commentPosition } = options;

  const commentsByNewLine = comment.split('\n');
  if (commentsByNewLine.length > 1) {
    commentPosition = above;
  }

  let processedComment;
  switch (commentStyle) {
    case short:
      if (commentPosition === inline) {
        processedComment = `// ${comment}`;
      } else {
        processedComment = commentsByNewLine.reduce(
          (acc, curr) => `${acc}${indentation}// ${curr}\n`,
          '',
        );
        // remove trailing newline
        processedComment = processedComment.replace(/\n$/g, '');
      }
      break;
    case long:
      if (commentsByNewLine.length > 1) {
        processedComment = commentsByNewLine.reduce(
          (acc, curr) => `${acc}${indentation} * ${curr}\n`,
          `${indentation}/**\n`,
        );
        processedComment += `${indentation} */`;
      } else {
        processedComment = `${commentPosition === above ? indentation : ''}/** ${comment} */`;
      }
      break;
  }

  if (commentPosition === above) {
    // put the comment above the token if it's multi-line or if commentStyle ended with -above
    to_ret_token = `${processedComment}\n${to_ret_token}`;
  } else {
    to_ret_token = `${to_ret_token} ${processedComment}`;
  }

  return to_ret_token;
}
Split a string comment by newlines and
convert to multi-line comment if necessary
@param {string} to_ret_token
@param {string} comment
@param {Formatting} options
@returns {string}