Что такое ATOL ?
Что такое атом ?
Символы языка
Структура программы
Описание функций
Объявление переменных
Встроенные функции:Установка значения переменной (set)Поддержка внешних библиотек
Функции для работы с атомами
Функции консольного ввода/вывода
Функции условного выполнения команд
Функции сравнения
Функции для работы с логикой
Пополнительные функции
Текущие ограничения: * Длина атома не должна превосходить 127 символов. * Не более 63 вложенных вызовов функций в параметрах для другой функции. * Встроенная функция read не может считать больше, чем 1023 символа. * Отсутствие функции include для подключения файлов. * Отсутствие поддержки модульности. * Отсутствие библиотеки для поддержки файлов atol_file.dll. * Отсутствие библиотеки для создания графического интерфейса atol_gui.dll. * Отсутствие инструмента для замены стандартной иконки файла интерпретатора. Но Вы можете сами заменить иконку с помощью какой-либо существующей программы.Можете свободно использовать ATOL в своих целях.
my_func(param) { ... % тело функции } или: 'super mega function!'(arg0 arg1 arg2) { ... } или: function_with_no_args { }Функция может вернуть значение двумя способами: или с помощью встроенной функции return, или же результатом функции будет последнее вычисленное выражение.
важная_функция(a b c) % Пример. { var(var1 var2) ... var(d) % объявление переменной в середине функции. ... }Нельзя создавать переменные с именами существующих функций или переменных.
set(destination, source) % Пример: set(abc 'value for abc') set("my long long variable", "hello hello hello!!!") set(a, abc) % Присвоение значения переменной от другой переменной.
Имя функции | Число аргументов | Описание |
---|---|---|
length | 1 | Возвращает длину атома (естественно, в виде атома) |
left | 2 |
left(num atom) Возвращает num левых символов заданного атома |
right | 2 |
right(num atom) Возвращает num правых символов заданного атома |
concat | > 1 | Соединяет параметры в один атом и возвращает его |
append | > 2 | Соединяет параметры, начиная со второго, в один атом и записывает результат в первый параметр |
head | 1 | Возвращает первый символ атома |
tail | 1 | Возвращает аргумент, за исключением первого символа |
last | 1 | Возвращает последний символ заданного аргумента |
reverse | 1 | Перестанавливает символы в обратном порядке (abc -> cba). |
null | * | Возвращает пустой атом (''). Можно вызвать со списком параметров-переменных, которые будут обнулены. |
Имя функции | Число аргументов | Описание |
---|---|---|
write | > 0 | Вывод одного или нескольких атомов в консоль |
writenl | > 0 | Как и write вывод набора атомов, но данная функция переводит строку. |
nl | 0 | Перевод строки |
read | 0, 1 | Ввод с консоли атома. При этом, если функция вызвана от одного аргумента (имя переменной), то в него будет занесен результат ввода. Иначе, эта функция просто вернет введенное значение. |
readchar | 0, 1 | Ввод одного символа с ожиданием. Работает как и read |
if <условие> <действие> if <условие> <действие> else <действие иначе>Если действий несколько, то они обрамляются фигурными скобками ({}). Истинным значением условия считается непустой атом. Если атом пустой, то это значение считается ложным.
Имя функции | Число аргументов | Описание |
---|---|---|
eq | > 1 | Истина, если все атомы равны. |
eqi | > 1 | Работает как и eq, но сравнивает без учета регистра символов. |
Имя функции | Число аргументов | Описание |
---|---|---|
and | > 1 | Истина, если все значения истинны |
or | > 1 | Истина, если хотя бы одно значение истинно |
not | 1, 2 | Истина, если параметр ложен. Если вызывается от двух параметров, то в первый (имя переменной) заносится значение функции от второго параметра. |
Имя функции | Число аргументов | Описание |
---|---|---|
return | 1 | Возвращает результат функции, немедленно завершая выполнение функции (как в C/C++) |
assert | > 1 |
assert(bool msg ...) Если выражение bool ложно, то останавливает работу программы и выводит сообщение об ошибке msg (все параметры после bool будут переданы функции write для вывода). Используется для проверок на ошибки. |
ATOL_ATOM WINAPI Name(ATOL_INTERFACE IAtol, ATOL_LIST Args, void * Reserved); IATol = указатель на интерфейс. Args = значения переданных параметров (список). Reserved = зарезервированно для будущих нужд. Функция должна возвратить значение - атом.*IAtol - это структура, содержащая адреса функций для доступа к различным возможностям ATOL, в том числе там содержатся функции, для работы со списком аргументов, функции для работы с атомами.