parameters: (name, start, count, last_values)
return_statement: return 2 ** (high_bit+1)
docstring: Generate the next value when not given.
  
          name: the name of the member
          start: the initial start value or None
          count: the number of existing members
          last_value: the last value assigned or None
docstring_summary: Generate the next value when not given.
docstring_tokens: Generate the next value when not given .
function: def _generate_next_value_(name, start, count, last_values):
          """
          Generate the next value when not given.
  
          name: the name of the member
          start: the initial start value or None
          count: the number of existing members
          last_value: the last value assigned or None
          """
          if not count:
              return start if start is not None else 1
          for last_value in reversed(last_values):
              try:
                  high_bit = _high_bit(last_value)
                  break
              except Exception:
                  raise TypeError('Invalid Flag value: %r' % last_value) from None
          return 2 ** (high_bit+1)
function_tokens: def _generate_next_value_ ( name , start , count , last_values ) : if not count : return start if start is not None else 1 for last_value in reversed ( last_values ) : try : high_bit = _high_bit ( last_value ) break except Exception : raise TypeError ( 'Invalid Flag value: %r' % last_value ) from None return 2 ** ( high_bit + 1 )