def split_flag_token(token):
    """
    Split a single token from the command line into its individual flags.

    Guarantees:

    * flags will not contain an '='
    * flags will not be '--'

    Since all output will be single flags, we yield strings, rather than tuples.

    | call | output |
    |:-----|:-------|
    | `split_token('-m')` | `['m']` |
    | `split_token('-czf')` | `['c', 'z', 'f']` |
    | `split_token('--last')` | `['last']` |

    N.b., those lists are actually iterables.
    """
    if token.startswith('--'):
        yield token[2:]
    else:
        for letter in token[1:]:
            yield letter
