define_c_var (определить_переменную_Си)
- выдаёт адрес в памяти для заданной переменной Си
c_proc (процедура_Си)
- вызывает функцию Си, игнорируя выдаваемую ею величину
c_func (функция_Си)
- вызывает функцию Си и выдаёт её величину
call_back (обратный_вызов)
- выдаёт 32-битный машинный адрес подпрограммы Euphoria по заданному её номеру для использования в качестве адреса обратного её вызова из операционной системы
message_box (табличка_сообщения)
- выводит диалоговое окно для получения от пользователя ответа Да/Нет/Сброс
free_console (освободить_консоль)
- удаляет текстовое окно консоли
instance (экземпляр)
- выдаёт идентификатор состояния текущей программы
Набор подпрограмм данного раздела позволяет вам организовывать в своей программе множественные независимые задачи, решаемые в режиме разделения времени. Каждая задача имеет свою собственную текущую исполняемую команду, свой собственный стек вызовов и своё собственное множество частных переменных. Локальные (местные) и глобальные переменные программы являются общими для всех задач. Когда в задаче вызывается подпрограмма task_yield(), выполнение задачи приостанавливается, управление передаётся диспетчеру задач Euphoria, и он решает, какую задачу из общей очереди следует поставить на дальнейшее исполнение.
Демонстрационная игра The Language War, lw.ex, широко использует механизм многозадачности для создания модели боя, в котором участвуют многочисленные независимо движущиеся корабли, торпеды, фазоры и т.д. Просмотрите также демо-программу taskwire.exw для Windows, и демо-программу news.exu для Linux и FreeBSD.
task_clock_start (задача_часы_старт)
- перезапускает часы диспетчера задач
task_clock_stop (задача_часы_стоп)
- останавливает часы диспетчера задач
task_create (задача_новая)
- создаёт новую задачу
task_list (задача_список)
- выдаёт список всех задач
task_schedule (задача_план)
- задаёт диспетчеру план решения задачи
task_self (задача_какая)
- выдаёт идентификатор текущей задачи (номер)
task_status (задача_состояние)
- выдаёт текущее состояние задачи (активна, приостановлена, прервана)
task_suspend (задача_стоп)
- приостанавливает решение задачи
task_yield (задача_другая)
- управление задачами передаётся диспетчеру, запускающему на исполнение другую задачу.
...
3. Алфавитный справочник по стандартным подпрограммам
?
Синтаксис:
? x
Описание:
Это просто короткая форма записи для команды: pretty_print(1, x, {}), по которой на экране осуществляется печать величины объекта, заданного выражением. Для более наглядного отображения структуры объекта печать производится в столбик со скобками, запятыми и отступами. Единственное отличие от pretty_print() заключается в том, что печать по команде ? завершается ещё и автоматическим переводом курсора в начало новой строки.
Пример:
? {1, 2} + {3, 4} -- будет напечатано {4, 6}
См. также:
pretty_print, print
abort
Синтаксис:
abort(i)
Описание:
Прерывает исполнение программы. Аргумент i представляет собой небольшую целочисленную величину кода окончания программы, выдаваемого в операционную систему. Код окончания 0 в общем случае соответствует успешному завершению программы. Другие коды используются для указания на характер ошибки, по которой программа прервана. Пакетные программы DOS (.bat-файлы) могут считывать величину этого кода с помощью команды errorlevel. Программы Euphoria могут считывать эту величину, если дочерняя программа была запущена из подпрограммы system_exec().
Комментарии:
Подпрограмма abort() бывает особенно полезна, когда необходимо немедленно прервать исполнение программы изнутри глубоко вложенных вызовов подпрограмм, например, из-за обнаруженной опасной ошибки.
Если вы не применяете abort(), а программа завершается естественным порядком, интерпретаторы ex.exe/exw.exe/exuвыдают в операционную систему код окончания 0. Если ваша программа прерывается по обнаруженной Euphoria ошибке времени компиляции или времени исполнения, выдаётся код 1.
Пример:
if x = 0 then
puts(ERR, "не могу делить на 0 !!!\n")
abort(1)
else
z = y / x
end if
См. также:
crash_message, system_exec
all_palette
Платформа:
DOS3 2
Синтаксис:
include graphics.e
all_palette(s)
Описание:
Читать дальше