eval

Far Manager Macro System

eval


ret = eval(S[,Mode[,Lang]])

Данная функция соответствует описанию в Энциклопедии Far Manager, со следующими расширениями:

1. eval может исполнять как Lua-код, так и MoonScript-код

Добавлен опциональный 3-й параметр Lang, указывающий язык кода параметра S в режимах 0, 1, 3. Допустимые значения: "lua" и "moonscript". Значение по умолчанию – "lua".

2. Параметр S может обозначать скрипт-файл

В режимах 0, 1, 3 параметр S может обозначать скрипт-файл, если этот параметр начинается с символа @. В этом случае параметр S должен иметь следующий формат:

    @<имя файла-скрипта> [<параметры скрипта>]
  • В имени файла допустимо использование переменных окружения.
  • Опциональные параметры скрипта представляют список выражений, разделённых запятыми.
  • Выражения должны использовать тот же язык программирования, что и файл-скрипт.

Пример:

    eval("@%MyFarScripts%\\calc.moon 'factorial', 3+5", 0, "moonscript")

3. Новые коды, возвращаемые eval(S, 2)

  • 0 (нормальный возврат) : дополняется значениями, возвращаемыми “запускаемым” макросом.
  • -3 : если было выведено меню выбора макроса, и пользователь его отменил.
  • -4 : если “запускаемый” макрос был прерван в результате ошибки времени исполнения.