Справочный указатель
Операторы и инструкции
Здесь собраны объявления, инструкции и управляющие конструкции Axiom с точной формой записи; каждая запись ведёт к основному описанию соответствующей формы.
Содержание
Операторы сгруппированы по роли в программе. В перечень включены объявления, управляющие конструкции, ввод и вывод, графика, события, присваивание и вызов как инструкция. Слова завершения блоков и режимы описываются вместе с соответствующим оператором.
DIM
DIM объявляет переменную с заданным или выведенным из выражения типом и устанавливает её начальное значение. В объявлении массива указывается также число измерений; если заданы границы, DIM выделяет элементы.
CONST
Предельное количество, коэффициент расчёта или неизменный заголовок удобно назвать один раз и дальше ссылаться на это имя в выражениях. CONST сохраняет результат выражения под таким именем и запрещает его переписывать.
TYPE
TYPE — оператор языка Axiom, который объявляет пользовательский тип записи с именованными полями. Тип может содержать методы, перегруженные конструкторы и проверку IsValid после конструктора.
SUB
Вывод отчёта, изменение набора данных, подготовка файла — такие действия часто повторяются в разных местах программы, и их инструкции приходится дублировать. Чтобы этого избежать, действие оформляют как процедуру: SUB объявляет именованный блок инструкций, который выполняется целиком и не возвращает значения.
FUNCTION
Вычисление, которое повторяется в разных местах программы, удобно вынести под отдельное имя и получать его результат как значение. Для этого служит FUNCTION: объявление задаёт параметры и тип результата, а каждый вызов возвращает значение этого типа.
IMPORT
Программа растёт, и её части удобнее держать в отдельных исходных файлах. Чтобы один файл мог пользоваться подпрограммами, типами и данными другого, он подключает его оператором IMPORT: после этого открытые имена зависимости доступны без префикса.
Когда программе нужно показать сообщение или результат вычисления, она передаёт значения оператору PRINT. Оператор превращает их в текст и помещает в консоль или в окно программы. Форма PRINT USING решает более узкую задачу: раскладывает значения по полям форматной строки, задавая ширину поля и вид числа.
PRINT USING
Когда программе нужно показать сообщение или результат вычисления, она передаёт значения оператору PRINT. Оператор превращает их в текст и помещает в консоль или в окно программы. Форма PRINT USING решает более узкую задачу: раскладывает значения по полям форматной строки, задавая ширину поля и вид числа.
INPUT
Значение, которое известно только во время работы программы, приходится спрашивать у пользователя. Для этого служит INPUT: он приостанавливает выполнение, показывает запрос, принимает подтверждённую строку и записывает разобранные из неё значения в заранее объявленные переменные. Число получателей, вид приглашения и строгость разбора задаёт сама запись оператора.
SLEEP
Готовый результат нужно успеть рассмотреть, а интерактивный цикл — не занимать процессор вхолостую. Оператор SLEEP приостанавливает программу на заданное время или до нажатия клавиши; выбор формы зависит от того, нужна ли фиксированная пауза или ожидание ввода.
RANDOMIZE
Последовательность RND воспроизводима только тогда, когда генератор стартует из одного и того же состояния. Задать это состояние заново позволяет RANDOMIZE: с числовым аргументом он заменяет зерно генератора, без аргумента оставляет текущее состояние нетронутым.
OPEN
Читать файл по строкам, дописывать текст в конец уже существующего или начать его заново с пустого места — для этого мало пути к файлу, нужен сам открытый ресурс. OPEN открывает текстовый файл и связывает его с заранее объявленной переменной FILE; выбранный режим определяет, будет файл читаться, заменяться или дополняться.
CLOSE
Открытый файл удерживает ресурс и часть записанного текста до тех пор, пока запись не будет завершена. CLOSE закрывает открытый текстовый файл: передаёт в поток накопленные байты и освобождает переменную FILE, после чего её снова можно открыть оператором OPEN.
IF
Перед действием часто нужно проверить данные: выполнять ли его вообще и какое из нескольких действий выбрать. IF принимает логическое условие и выполняет ту ветвь, для которой условие истинно. Если действие в каждой ветви одно, хватает одной строки; для нескольких действий и дополнительных проверок служит блочная запись с ELSEIF, ELSE и END IF.
SELECT CASE
Когда действие выбирается по одному значению — коду, категории, диапазону или строке, — цепочка сравнений заставляет повторять это значение в каждом условии. SELECT CASE записывает выражение выбора один раз, а ветви CASE перечисляют его варианты: отдельные значения, диапазоны и проверки отношения. Выполняется первая подошедшая ветвь.
FOR
Если блок нужно выполнить заданное число раз или пройти по числовому диапазону, счётчик и его изменение удобнее поручить самой конструкции. FOR создаёт счётчик, выполняет тело для каждого допустимого значения и на NEXT переходит к следующему; тело заканчивается, когда счётчик выходит за границу в направлении шага. Начало, конец и шаг задаются в заголовке цикла.
WHILE
Повторять блок до тех пор, пока сохраняется нужное состояние данных, позволяет WHILE. Условие стоит в заголовке и проверяется перед каждым проходом, включая первый, поэтому тело выполняется только при истинном условии, а цикл завершается на том проходе, после которого условие стало ложным.
DO ... LOOP
Место проверки условия иногда важнее самого условия: блок может требовать хотя бы одного выполнения или, наоборот, не выполняться при ложном условии вовсе. DO … LOOP позволяет выбрать, где стоит проверка — в начале, в конце или нигде, — и как она читается: WHILE продолжает повторение при истинном условии, UNTIL завершает его при истинном.
EXIT FOR
Повторения иногда нужно прекратить раньше, чем сработает условие цикла: результат уже найден или продолжать вычисление не требуется. EXIT завершает ближайший охватывающий цикл указанного вида и передаёт управление за его окончание. Форм две — EXIT FOR и EXIT DO; каждая действует только в цикле своего вида и не принимает аргументов.
EXIT DO
Повторения иногда нужно прекратить раньше, чем сработает условие цикла: результат уже найден или продолжать вычисление не требуется. EXIT завершает ближайший охватывающий цикл указанного вида и передаёт управление за его окончание. Форм две — EXIT FOR и EXIT DO; каждая действует только в цикле своего вида и не принимает аргументов.
CONTINUE FOR
Часть прохода иногда не имеет смысла: данные не подходят под условие обработки, и остаток тела нужно пропустить, не прекращая цикл. CONTINUE передаёт управление к концу текущего прохода, после чего цикл обычным образом переходит к следующему. Форма выбирается по виду цикла — CONTINUE FOR, CONTINUE WHILE или CONTINUE DO.
CONTINUE WHILE
Часть прохода иногда не имеет смысла: данные не подходят под условие обработки, и остаток тела нужно пропустить, не прекращая цикл. CONTINUE передаёт управление к концу текущего прохода, после чего цикл обычным образом переходит к следующему. Форма выбирается по виду цикла — CONTINUE FOR, CONTINUE WHILE или CONTINUE DO.
CONTINUE DO
Часть прохода иногда не имеет смысла: данные не подходят под условие обработки, и остаток тела нужно пропустить, не прекращая цикл. CONTINUE передаёт управление к концу текущего прохода, после чего цикл обычным образом переходит к следующему. Форма выбирается по виду цикла — CONTINUE FOR, CONTINUE WHILE или CONTINUE DO.
RETURN
Иногда подпрограмму нужно закончить раньше последней инструкции тела — например, сразу после проверки входного аргумента. Для досрочного выхода из процедуры и для возврата вычисленного результата из функции служит RETURN; вид оператора зависит от того, в каком объявлении он записан.
TRY
Недоступный файл, аргумент вне допустимого диапазона, деление на ноль — такой отказ не всегда должен останавливать программу. Часто достаточно пропустить неудавшуюся операцию, записать сведения и перейти к следующему шагу. TRY размечает участок, ошибки внутри которого программа обрабатывает сама: блок CATCH получает возникшую ошибку, блок FINALLY выполняет завершающие инструкции.
ERROR
Прикладное условие не всегда совпадает с возможностями операции: данные могут оказаться неполными, состояние — неподходящим. Когда продолжать нельзя, программа сама создаёт отказ оператором ERROR и задаёт ему собственный код, а обработчик получает этот отказ наравне с системными ошибками. Той же формой со значением ERROR можно передать уже полученную ошибку наружу.
FOR EACH
Когда нужно выполнить действие с каждым элементом массива, индексы и границы не нужны: достаточно назвать массив и переменную, которая получит очередное значение. Форма `FOR EACH` выполняет тело один раз на элемент и сама следит за порядком и границами.
REDIM
Когда размер массива становится известен только при выполнении, границы задают оператором REDIM. Он выделяет хранилище по новым границам и либо создаёт элементы заново, либо сохраняет те из них, чьи индексы остались в новой области.
REDIM PRESERVE
Когда размер массива становится известен только при выполнении, границы задают оператором REDIM. Он выделяет хранилище по новым границам и либо создаёт элементы заново, либо сохраняет те из них, чьи индексы остались в новой области.
ERASE
Когда элементы массива больше не нужны, занимаемое ими хранилище освобождают оператором ERASE. Имя и объявленный тип при этом сохраняются, поэтому массив остаётся в программе, но переходит в невыделенное состояние.
SCREEN
Пока программа не выбрала экран, её текст идёт в консоль. Оператор SCREEN открывает отдельное окно программы и задаёт его режим: SCREEN 0 даёт текстовую сетку, SCREEN 1..10 — палитровую графику. Тот же оператор выбирает активную и видимую экранные страницы.
SMOOTH
Готовый графический кадр часто выводится в область другого размера, и тогда ступенчатые края линий, окружностей, изображений и растрового текста становятся заметны. Оператор SMOOTH включает или отключает сглаживание такого кадра целиком, не меняя ни исходных пикселей, ни координат программы.
CANVAS
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
BEGINFRAME
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
PRESENT
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
CAMERA
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
VIEWPORT
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
RESETCAMERA
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
VIEW
Когда рисунок должен занять лишь часть экрана, а остальное изображение остаться нетронутым, границы области задаёт оператор VIEW. Его форма VIEW PRINT решает другую задачу: она отводит экранному тексту отдельные строки, внутри которых идёт вывод и прокрутка.
VIEW PRINT
Когда рисунок должен занять лишь часть экрана, а остальное изображение остаться нетронутым, границы области задаёт оператор VIEW. Его форма VIEW PRINT решает другую задачу: она отводит экранному тексту отдельные строки, внутри которых идёт вывод и прокрутка.
WINDOW
График функции, оси или схему удобнее описывать в собственных числах, а не в пикселях. Оператор WINDOW связывает текущую область рисования с логической системой координат, и программа задаёт свою шкалу, которую среда переводит в экранную область.
CLS
В окне SCREEN текст размещается не свободно, а по ячейкам сетки, и ему можно задать цвет и фон. Для этого служат три оператора: CLS очищает вывод, COLOR задаёт цвет символов и режим фона, LOCATE выбирает ячейку, с которой начнётся следующий текст. У каждого из них собственная форма вызова, поэтому ниже они разобраны по отдельности.
COLOR
В окне SCREEN текст размещается не свободно, а по ячейкам сетки, и ему можно задать цвет и фон. Для этого служат три оператора: CLS очищает вывод, COLOR задаёт цвет символов и режим фона, LOCATE выбирает ячейку, с которой начнётся следующий текст. У каждого из них собственная форма вызова, поэтому ниже они разобраны по отдельности.
LOCATE
В окне SCREEN текст размещается не свободно, а по ячейкам сетки, и ему можно задать цвет и фон. Для этого служат три оператора: CLS очищает вывод, COLOR задаёт цвет символов и режим фона, LOCATE выбирает ячейку, с которой начнётся следующий текст. У каждого из них собственная форма вызова, поэтому ниже они разобраны по отдельности.
PALETTE
Пиксели графического экрана хранят не готовый цвет, а номер в палитре, и видимый оттенок определяет сама палитра. Оператор PALETTE задаёт этот видимый цвет для выбранного индекса, поэтому цветовую схему можно сменить, не перерисовывая изображение.
PCOPY
Экранные страницы позволяют отделить рисование следующего изображения от текущего показа. Когда кадр на скрытой странице готов, его переносят на видимую оператором PCOPY: он заменяет содержимое одной графической страницы содержимым другой.
PSET
Точка, линия, окружность и залитая область — основа любого рисунка на графической поверхности. Их ставят операторы PSET, PRESET, LINE, CIRCLE, PAINT и DRAW, а состояние отдельного пикселя читает встроенная функция POINT. Ниже сначала объясняется, где эти средства работают, в каких единицах задаются координаты и что означает цвет, а затем каждая сущность описана отдельно вместе со своей формой вызова.
PRESET
Точка, линия, окружность и залитая область — основа любого рисунка на графической поверхности. Их ставят операторы PSET, PRESET, LINE, CIRCLE, PAINT и DRAW, а состояние отдельного пикселя читает встроенная функция POINT. Ниже сначала объясняется, где эти средства работают, в каких единицах задаются координаты и что означает цвет, а затем каждая сущность описана отдельно вместе со своей формой вызова.
GET
Участок изображения иногда нужно сохранить, чтобы восстановить его позже, перенести в другую точку или наложить на уже нарисованное. Для этого служит пара операторов: GET считывает прямоугольный блок пикселей в двумерный числовой массив, а PUT рисует сохранённый блок на поверхности.
PUT
Участок изображения иногда нужно сохранить, чтобы восстановить его позже, перенести в другую точку или наложить на уже нарисованное. Для этого служит пара операторов: GET считывает прямоугольный блок пикселей в двумерный числовой массив, а PUT рисует сохранённый блок на поверхности.
LINE
Точка, линия, окружность и залитая область — основа любого рисунка на графической поверхности. Их ставят операторы PSET, PRESET, LINE, CIRCLE, PAINT и DRAW, а состояние отдельного пикселя читает встроенная функция POINT. Ниже сначала объясняется, где эти средства работают, в каких единицах задаются координаты и что означает цвет, а затем каждая сущность описана отдельно вместе со своей формой вызова.
CIRCLE
Точка, линия, окружность и залитая область — основа любого рисунка на графической поверхности. Их ставят операторы PSET, PRESET, LINE, CIRCLE, PAINT и DRAW, а состояние отдельного пикселя читает встроенная функция POINT. Ниже сначала объясняется, где эти средства работают, в каких единицах задаются координаты и что означает цвет, а затем каждая сущность описана отдельно вместе со своей формой вызова.
PAINT
Точка, линия, окружность и залитая область — основа любого рисунка на графической поверхности. Их ставят операторы PSET, PRESET, LINE, CIRCLE, PAINT и DRAW, а состояние отдельного пикселя читает встроенная функция POINT. Ниже сначала объясняется, где эти средства работают, в каких единицах задаются координаты и что означает цвет, а затем каждая сущность описана отдельно вместе со своей формой вызова.
DRAW
Точка, линия, окружность и залитая область — основа любого рисунка на графической поверхности. Их ставят операторы PSET, PRESET, LINE, CIRCLE, PAINT и DRAW, а состояние отдельного пикселя читает встроенная функция POINT. Ниже сначала объясняется, где эти средства работают, в каких единицах задаются координаты и что означает цвет, а затем каждая сущность описана отдельно вместе со своей формой вызова.
DRAWLINE
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
DRAWCIRCLE
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
FILLCIRCLE
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
DRAWRECT
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
FILLRECT
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
DRAWTEXT
Полноцветная графика требует поверхности, которая хранит готовый цвет, а не номер в палитре. Такой поверхностью служит холст, открываемый оператором CANVAS. На этой странице собраны создание холста, подготовка и показ кадра, примитивы, текст, цвета и преобразование координат камерой; каждая запись синтаксиса относится к отдельному оператору или функции.
DRAWIMAGE
Готовая картинка из файла используется в программе как отдельное значение: её загружают один раз, при необходимости измеряют и выводят в нужное место экрана или холста. Для этого служат тип IMAGE, функция LOADIMAGE, функции размеров IMAGEWIDTH и IMAGEHEIGHT и оператор DRAWIMAGE.
DRAWSPRITE
Кадры анимации удобно держать в одном файле-листе и выводить по одному, меняя только номер кадра. Такой лист описывает тип SPRITE; его загружает LOADSPRITE, размеры и число кадров сообщают SPRITEWIDTH, SPRITEHEIGHT и SPRITECOUNT, а выводит нужный кадр оператор DRAWSPRITE.
DRAWTILE
Повторяющиеся фрагменты карты, декорации, панели и небольшие игровые элементы удобно хранить одним атласом, нарезанным на одинаковые тайлы. Такой атлас описывает тип TILESET; его загружает LOADTILESET, размеры и число тайлов сообщают TILECOUNT, TILEWIDTH и TILEHEIGHT, а выводит выбранный тайл оператор DRAWTILE.
DRAWTILEMAP
Уровень, подготовленный в редакторе карт, содержит слои, клетки, объекты и свойства, и программе не нужно строить эту сетку вручную. Такую конечную ортогональную карту Tiled описывает тип TILEMAP: раздел охватывает её загрузку, чтение размеров, слоёв, клеток, объектов и свойств, а также рисование и изменение клеток. Точные формы каждой функции и оператора приведены в соответствующих подразделах.
DRAWTILELAYER
Уровень, подготовленный в редакторе карт, содержит слои, клетки, объекты и свойства, и программе не нужно строить эту сетку вручную. Такую конечную ортогональную карту Tiled описывает тип TILEMAP: раздел охватывает её загрузку, чтение размеров, слоёв, клеток, объектов и свойств, а также рисование и изменение клеток. Точные формы каждой функции и оператора приведены в соответствующих подразделах.
SETMAPTILE
Уровень, подготовленный в редакторе карт, содержит слои, клетки, объекты и свойства, и программе не нужно строить эту сетку вручную. Такую конечную ортогональную карту Tiled описывает тип TILEMAP: раздел охватывает её загрузку, чтение размеров, слоёв, клеток, объектов и свойств, а также рисование и изменение клеток. Точные формы каждой функции и оператора приведены в соответствующих подразделах.
ON KEY
Реакцию на нажатие клавиши можно не проверять в каждом цикле, а вынести в отдельную процедуру. Оператор ON KEY назначает такую процедуру SUB обработчиком нажатия, и среда вызывает её между инструкциями программы, когда в очереди есть подходящее событие. Параметр обработчика передаётся по значению; BYREF не допускается.
ON MOUSE
Реакцию на мышь удобно вынести в отдельные процедуры, а не проверять состояние указателя в каждом цикле. Оператор ON MOUSE назначает процедуру SUB обработчиком событий мыши — нажатия, отпускания, перемещения или прокрутки колеса — и среда вызывает её между обычными инструкциями программы.
Присваивание
Изменить уже сохранённое значение позволяет присваивание: выражение справа от знака равенства вычисляется, а результат записывается в переменную, элемент массива или поле записи. Тип цели при этом остаётся прежним.
Распаковка кортежа
Кортеж объединяет несколько значений разных типов и позволяет обращаться к нужной части по имени или позиции.
Вызов как инструкция
Объявленная подпрограмма начинает работать только тогда, когда её вызывают с конкретными аргументами. Одна и та же форма вызова обслуживает процедуру, функцию, функциональное значение и метод записи; различаются они тем, что объявлено под именем, и тем, используется ли результат.
Описание Вызов как инструкция: синтаксис, параметры и примеры