docs: def get_variable(self, var_name):
          """
          If a variable with the name var_name exists in this function's variable list, \
                  then that variable object is returned; else a new variable is created\
                  with the given name and added to the variable list of this function\
                  and returned back
  
          :returns: A variable which has the its name as var_name
          :rype: Variable
          """
          assert(isinstance(var_name, str))
          if isinstance(var_name, str):
              for var in self.variable_list:
                  if var.name == var_name:
                      return var
              new_var = Variable(var_name)
              self.variable_list.append(new_var)
              return new_var