nodes: 0, module; 1, function_definition; 2, function_name:zremrangebylex; 3, parameters; 4, block; 5, identifier:self; 6, identifier:key; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, default_parameter; 11, expression_statement; 12, if_statement; 13, if_statement; 14, if_statement; 15, if_statement; 16, return_statement; 17, identifier:min; 18, string; 19, identifier:max; 20, string; 21, identifier:include_min; 22, True; 23, identifier:include_max; 24, True; 25, comment:"""Remove all members in a sorted set between the given
          lexicographical range.
  
          :raises TypeError: if min is not bytes
          :raises TypeError: if max is not bytes
          """; 26, not_operator; 27, comment:# FIXME; 28, block; 29, not_operator; 30, comment:# FIXME; 31, block; 32, not_operator; 33, block; 34, not_operator; 35, block; 36, call; 37, string_content:-; 38, string_content:+; 39, call; 40, raise_statement; 41, call; 42, raise_statement; 43, comparison_operator:min == b'-'; 44, expression_statement; 45, comparison_operator:max == b'+'; 46, expression_statement; 47, attribute; 48, argument_list; 49, identifier:isinstance; 50, argument_list; 51, call; 52, identifier:isinstance; 53, argument_list; 54, call; 55, identifier:min; 56, string; 57, assignment; 58, identifier:max; 59, string; 60, assignment; 61, identifier:self; 62, identifier:execute; 63, string; 64, identifier:key; 65, identifier:min; 66, identifier:max; 67, identifier:min; 68, identifier:bytes; 69, identifier:TypeError; 70, argument_list; 71, identifier:max; 72, identifier:bytes; 73, identifier:TypeError; 74, argument_list; 75, string_content:-; 76, identifier:min; 77, binary_operator:(b'[' if include_min else b'(') + min; 78, string_content:+; 79, identifier:max; 80, binary_operator:(b'[' if include_max else b'(') + max; 81, string_content:ZREMRANGEBYLEX; 82, string:"min argument must be bytes"; 83, string:"max argument must be bytes"; 84, parenthesized_expression; 85, identifier:min; 86, parenthesized_expression; 87, identifier:max; 88, conditional_expression:b'[' if include_min else b'('; 89, conditional_expression:b'[' if include_max else b'('; 90, string; 91, identifier:include_min; 92, string; 93, string; 94, identifier:include_max; 95, string; 96, string_content:[; 97, string_content:(; 98, string_content:[; 99, string_content:(
code: def zremrangebylex(self, key, min=b'-', max=b'+',
                         include_min=True, include_max=True):
          """Remove all members in a sorted set between the given
          lexicographical range.
  
          :raises TypeError: if min is not bytes
          :raises TypeError: if max is not bytes
          """
          if not isinstance(min, bytes):  # FIXME
              raise TypeError("min argument must be bytes")
          if not isinstance(max, bytes):  # FIXME
              raise TypeError("max argument must be bytes")
          if not min == b'-':
              min = (b'[' if include_min else b'(') + min
          if not max == b'+':
              max = (b'[' if include_max else b'(') + max
          return self.execute(b'ZREMRANGEBYLEX', key, min, max)