class_docstr: Helper that visits all nodes in the AST tree and assigns .first_token and .last_token attributes
  to each of them. This is the heart of the token-marking logic.
class_docstr_tok: ["Helper","that","visits","all","nodes","in","the","AST","tree","and","assigns",".first_token","and",".last_token","attributes","to","each","of","them",".","This","is","the","heart","of","the","token-marking","logic","."]
code: def _find_last_in_stmt(self, start_token):
      # type: (util.Token) -> util.Token
      t = start_token
      while (
          not util.match_token(t, token.NEWLINE)
          and not util.match_token(t, token.OP, ";")
          and not token.ISEOF(t.type)
      ):
          t = self._code.next_token(t, include_extra=True)
      return self._code.prev_token(t)
  
imports: import ast
  import numbers
  import sys
  import token
  from ast import Module
  from typing import Callable, List, Union, cast, Optional, Tuple, TYPE_CHECKING
  import six
  from .None import util
  from .asttokens import ASTTokens
  from .util import AstConstant
  from .astroid_compat import astroid_node_classes, BaseContainer
label_desc: Use image node_id 5 for calling the MarkTokens obj's underlying member method code with example usage: obj._find_last_in_stmt(start_token) and returns: self