def _FlattenToCallback(tokens, callback):
    """Takes a nested list structure and flattens it.

  ['a', ['b', 'c']] -> callback('a'); callback('b'); callback('c');
  """
    for t in tokens:
        if isinstance(t, six.string_types):
            callback(t)
        else:
            _FlattenToCallback(t, callback)
Takes a nested list structure and flattens it.

  ['a', ['b', 'c']] -> callback('a'); callback('b'); callback('c');