ksi language
ksi - Язык программирования с динамической типизацией.
Имена в ksi
Существует определённое разграничение для имён функций, типов, переменных и т.д.
Описание | Пример |
---|---|
Типы начинаются с символа $ | $bool $int $float $text |
Переменные - без спец. символа | a b c var1 var2 |
Функции - с символа & | &test &new &main |
Native-функции - с # | #type #is #count |
Ключевые слова, именованные операторы - с ` (backtick) | `and `or `each |
Текстовые литералы, состоящие из одного слова - со знака % | %hello %world %123 |
Константы (в том числе и предопределённые) заканчиваются диезом | hair_color# = 'red' n# -- "\n" s# -- ' ' FN# |
Имена модулей начинаются с собачки @ | @main @lib |
Специальные значения
Значением null для краткости является одиночный знак диез: x = #. Его тип - это $null
Булевы значения true и false – это #1 и #0 соответственно. Их тип $bool.
Разделение выражений
Выражения в ksi могут разделяться переводом строки:
Запятой:
И даже пробелом:
Кроме того система определит перенос одного выражения на несколько строк автоматически:
Группировка выражений
Когда сгруппировано несколько выражений, то итоговым значением принимается последнее.
Присваивание вправо
Отрицательные значения
Чтобы указать отрицательное значение поставьте знак подчёркивания после числа.
Части скрипта
Текст программы на ksi делится на две части. До ключевого слова `plain идёт декларативная часть. В ней помещаются определения функций и классов. После `plain идёт императивная часть. Она служит для вычислений. Вычисления также находятся и в телах функций. Если императивная часть пуста, то `plain можно не указывать.
Немного о функциях
Функции в ksi принимают всегда два аргумента – левый и правый. Для задания возвращаемого значения используется специальная переменная с именем ret. Её значение и будет возвращено в место вызова функции. Когда значение аргумента не важно – обычно используется null #. Если необходимо передать в функцию больше двух значений – воспользуйтесь составными типами (массив, ассоциативный массив, объект класса).
Вывод информации на экран
Для вывода информации на экран служит native-функция #echo. Правый её аргумент – это разделитель.
Ещё есть ключевое слово `echo. Оно ставится после выражения, значение которого необходимо вывести. Справа от `echo можно поставить дополнительные значения для вывода, перечисленные через необязательную запятую. Вконце конструкции `echo ставится точка с запятой.
Для выводимых составных значений справа от `echo после двоеточия : можно указать разделитель, который работает аналогично как у native функции #echo.
Ключевое слово `echo пока не реализовано в интерпретаторе.
И наконец существует native-функция #dump, которая выводит значения в виде ksi-выражения. Правый её аргумент отвечает за структурированность вывода (выводит всё в одну строчку, если false #0; и разбивает на строчки, если true #1).