class_docstr: Pull out contiguous comment blocks.
      
class_docstr_tok: ["Pull","out","contiguous","comment","blocks","."]
docstr: Possibly add a new comment.
  
  Only adds a new comment if this comment is the only thing on the line.
  Otherwise, it extends the noncomment block.
docstr_tok: ["Possibly","add","a","new","comment",".","Only","adds","a","new","comment","if","this","comment","is","the","only","thing","on","the","line",".","Otherwise",",","it","extends","the","noncomment","block","."]
code: def new_comment(self, string, start, end, line):
      """Possibly add a new comment.
  
      Only adds a new comment if this comment is the only thing on the line.
      Otherwise, it extends the noncomment block.
      """
      prefix = line[: start[1]]
      if prefix.strip():
          # Oops! Trailing comment, not a comment block.
          self.current_block.add(string, start, end, line)
      else:
          # A comment block.
          block = Comment(start[0], end[0], string)
          self.blocks.append(block)
          self.current_block = block
  
imports: import sys
  import compiler
  import inspect
  import textwrap
  import tokenize
  from .compiler_unparse import unparse
label_desc: Use image node_id 5 for calling the CommentBlocker obj's underlying member method code with example usage: obj.new_comment(string, start, end, line) without return types