docs: static Comment createCommentFromToken(Token token) {
          String commentText = token.image;
          if (token.kind == JAVADOC_COMMENT) {
              return new JavadocComment(tokenRange(token), commentText.substring(3, commentText.length() - 2));
          } else if (token.kind == MULTI_LINE_COMMENT) {
              return new BlockComment(tokenRange(token), commentText.substring(2, commentText.length() - 2));
          } else if (token.kind == SINGLE_LINE_COMMENT) {
              // line comments have their end of line character(s) included, and we don't want that.
              Range range = new Range(pos(token.beginLine, token.beginColumn), pos(token.endLine, token.endColumn));
              while (commentText.endsWith("\r") || commentText.endsWith("\n")) {
                  commentText = commentText.substring(0, commentText.length() - 1);
              }
              range = range.withEnd(pos(range.begin.line, range.begin.column + commentText.length()));
              LineComment comment = new LineComment(tokenRange(token), commentText.substring(2));
              comment.setRange(range);
              return comment;
          }
          throw new AssertionError("Unexpectedly got passed a non-comment token.");
      }