nodes: 0, module; 1, function_definition; 2, function_name:is_jump_back; 3, parameters; 4, block; 5, identifier:self; 6, identifier:offset; 7, identifier:extended_arg; 8, expression_statement; 9, if_statement; 10, return_statement; 11, comment:"""
          Return True if the code at offset is some sort of jump back.
          That is, it is ether "JUMP_FORWARD" or an absolute jump that
          goes forward.
          """; 12, comparison_operator:self.code[offset] != self.opc.JUMP_ABSOLUTE; 13, block; 14, comparison_operator:offset > self.get_target(offset, extended_arg); 15, subscript; 16, attribute; 17, return_statement; 18, identifier:offset; 19, call; 20, attribute; 21, identifier:offset; 22, attribute; 23, identifier:JUMP_ABSOLUTE; 24, False; 25, attribute; 26, argument_list; 27, identifier:self; 28, identifier:code; 29, identifier:self; 30, identifier:opc; 31, identifier:self; 32, identifier:get_target; 33, identifier:offset; 34, identifier:extended_arg
code: def is_jump_back(self, offset, extended_arg):
          """
          Return True if the code at offset is some sort of jump back.
          That is, it is ether "JUMP_FORWARD" or an absolute jump that
          goes forward.
          """
          if self.code[offset] != self.opc.JUMP_ABSOLUTE:
              return False
          return offset > self.get_target(offset, extended_arg)