Язык Lua

1. Введение

В программе конструктора G-кода, используется скриптовый язык программирования Lua, с помощью которого можно реализовать различную логику генерации текста с G-кодом, и на данной странице я опишу базовые возможности языка, и его применения.

2. Переменные

Переменные позволяют хранить данные, которые мы в них помещаем, а так-же выполнять различные математические операции над этими данными.
Имена переменных чувствительны к регистру, а значит переменная “test” и “Test” будут считаться разными переменными.
На примере ниже создание переменной, и помещения в неё значения:

[lua] p1 = 10 p2 = “zzz” [/lua]
3. Арифметические операции

Для числовых значений применяются следующие операции:

  • сложение “+”
  • вычитание “-“
  • умножение “*”
  • деление “/”
  • остаток от деления “%”
  • возведение в степень “^”

И примеры ниже: [lua] p1 = 10 p2 = 3 p3 = p1 + p2 — результат будет 13 p3 = p1 – p2 — результат будет 7 p3 = p1 * p2 — результат будет 30 p3 = p1 / p2 — результат будет 3.333333 p3 = p1 % p2 — результат будет 1 (т.к. 3*3 = 9 и остаток 10 – 9 = 1) p3 = 5 ^ 2 — результат будет 25 [/lua] Для возможности управлять очерёдностью математических операций можно использовать скобки: [lua] p1 = 10 p2 = 3 p3 = (p1 – 2) * p2 — результат будет (10 – 2) * 3 = 8 * 3 = 24 [/lua]

Для объединения текстовых данных применяется “..” И пример ниже: [lua] p1 = 10 p2 = “zzz” p3 = p2 .. p1 — результат будет zzz10 p3 = p2 .. “-” .. p2 — результат будет zzz-zzz [/lua]

4. Условия
Когда коду требуется работать согласно некоторой логике, можно использовать условия, выглядит это так: [lua] if p1 == 10 then –тут условие выполнится если p1 равно 10 end if p1 ~= 10 then –а тут условие выполнится если p1 не равно 10 end if p1 >= 10 then –а тут условие выполнится если p1 больше или равно 10 end [/lua] Для проверки условия можно использовать следующие символы:
  • “<" - значение слева меньше значения справа*
  • “>” – значение слева больше значения справа*
  • “<=" - значение слева меньше или равно значению справа*
  • “>=” – значение слева больше или равно значению справа*
  • “==” – значение слева равно значению справа
  • “~=” – значение слева не равно значению справа

* – Возможно применение только для числовых данных

А так-же есть возможность в оном условии проводить несколько проверок, используя “and”, “or”: [lua] if p1 == 10 or p1 == 15 then –тут условие выполнится если p1 равно 10 или равно 15 –т.е. как минимум совпадет одно из условий end if p1 == 1 and p2 = 4 then –а тут условие выполнится если p1 равно 1 и p2 равно 4 –т.е. совпадут оба условия end [/lua]

5. Циклы
Для возможности выполнить некую похожую операцию, нужное количество раз, можно использовать цикл, в котором указывается название переменной, начальное значение, конечное значение, и значение инкремента. Пример: [lua] for p1 = 0, 5, 1 do – по мере выполнения цикла в данном месте переменная p1, будет иметь значение 0,1,2,3,4, и 5, после чего цикл завершится. end [/lua] Вот в этом примере к значению 10 в цикле прибавится 1, потом ещё добавится 2, и 3, что в итоге в переменной получится значение 10 + 1 + 2 + 3 = 16 [lua] p1 = 10 for p2 = 1, 3, 1 do p1 = p1 + p2 end [/lua]