def index_names_from_symbol(symbol):
    """
  Return the domain names of a GAMS symbol,
  except ['*'] cases are replaced by the name of the symbol
  and ['*',..,'*'] cases are replaced with ['index_0',..'index_n']
  """
    index_names = list(symbol.domains_as_strings)
    if index_names == ['*']:
        return [symbol.name]
    if index_names.count('*') > 1:
        for i, name in enumerate(index_names):
            if name == '*':
                index_names[i] = f'index_{i}'
    return index_names
