if (!settings->interpreter.current.process_id->process_exists ())
{
  memset (&settings->interpreter.current, -_);

  rc = exec (&settings->interpreter.current, settings->interpreter.static.file_name, &parameters),
  {
    parameters = {
                   flags : EXEC_ASYNC_RC, std : { in, out : stream_handle }
                 }
  };

  if (rc) {}
  else { error (ERR_INTERPRETER); }
}
else
{
  rc = connect (settings->interpreter.current.process_id, &std),
  {
    std = { in, out : stream_handle }
  };

  if (rc) {}
  else { error (ERR_INTERPRETER); }
}