code: def def_variables(s):
      
  
      frame = inspect.currentframe().f_back
      try:
          if isinstance(s,str):
              s = re.split('\s|,', s)
          res = []
          for t in s:
              # skip empty stringG
              if not t:
                  continue
              if t.count("@") > 0:
                  sym = IndexedSymbol(t,Variable)
                  t = t.strip('@')
              else:
                  sym = Variable(t)
              frame.f_globals[t] = sym
              res.append(sym)
          if frame.f_globals.get('variables_order'):
              # we should avoid to declare symbols twice !
              frame.f_globals['variables_order'].extend(res)
          else:
              frame.f_globals['variables_order'] = res
          return res
      finally:
          del frame
docs: blabla