code: def grep_full_py_identifiers(tokens):
      
      global py_keywords
      tokens = list(tokens)
      i = 0
      while i < len(tokens):
          token_type, token = tokens[i]
          i += 1
          if token_type != "id":
              continue
          while i+1 < len(tokens) and tokens[i] == ("op", ".") and tokens[i+1][0] == "id":
              token += "." + tokens[i+1][1]
              i += 2
          if token == "":
              continue
          if token in py_keywords:
              continue
          if token[0] in ".0123456789":
              continue
          yield token
docs: :param typing.Iterable[(str,str)] tokens:
      :rtype: typing.Iterator[str]