Для использования требуется устанровленный Python
Рекомендуемая версии >= 3.11
Скопируйте данный репозиторий в нужную вам директорию и создайте в ней файл с расширением .gl
git clone https://github.com/keeniGithub/GlowLang.gitДля запуска вы можете использовать интерактивную консоль, запустив файл shell.bat или shell.py и выполнять код в ней
Пример:
GlowShell >>> print("hello world!")
hello world!
GlowShell >>>В этой же консоли вызвать функцию run("filename.gl"), передава в нее названия к файлу (учитывайте, что нужно указывать полный путь)
Пример:
GlowShell >>> run("example.gl")
>>> 5
120
GlowShell >>>Для создания перменных используеться ключевое слово var
Доступны типы данных:
- Целые числа
- Числа с плавующей точкой
- Строки
- Массивы (листы)
Так же можно использовать математические операторы
+Плюс-Минус*Умножения/Деления^Степень
Пример:
var a = 1
var b = 25.07
var c = "Hello, Glow!"
var d = [1, 2, 3, "Four"]
var e = (2 + 2) * 2Так же, в языке присутствует уже встроенные числовые значения
null - 0
false - 0
true - 1
pi - 3.141592653589793
e - 2.718281828459045
Glow использует конструкцию to then end как в Basic (правда с последней версии вместо 'then' теперь ':')
Пример:
for i = 0 to 5 :
print(i)
endВывод:
0
1
2
3
4Пример:
var i = 0
while i < 5 :
var i = i+1
print(i)
endВывод:
1
2
3
4
5Как в любом языке, тут есть условия if, elif, else
Для них используються операторы сравнения:
>Больше>=Больше или равно<Меньше<=меньше или равно==Равенства!=Неравенства
И логические операторы:
andИorИлиnotНе
Пример:
var i = 101
if i == 100 :
print("i is 100")
elif i == 101 :
print("i is 101")
else
print("i not 100 and not 101")
endВывод:
i is 101Функции создаються при помощи ключевого слова func
В круглых скобках вы передаете параметры, а аргументы при вызове (как вы любом другом языке)
Пример:
// Пример из example.gl
func factorial(n)
var fctrl = 1
while n > 1 :
var fctrl = fctrl*n
var n = n-1
end
return fctrl
end
var n = input_int()
print(factorial(n))Вывод:
>>> 5
120Стрелочные функции в Glow немного схожи с их аналогом в JavaScript или lambda в Python и Ruby, и нужны чтобы не писать много строк кода для простых действий
Пример:
func sum(a, b) -> a+b
print(sum(2, 2))Вывод:
4print- Выводит текст в консольinput- Принимает значенияinput_int- Принимает целые числаis_number- Является ли передаваемый аргумент числомis_string- Является ли передаваемый аргумент строкойis_list- Является ли передаваемый аргумент спискомis_function- Является ли передаваемый аргумент функциейappend- Добавляет новый элемент в конец спискаextend- Объеденяет 2 спискаpop- Удаляет элемент по указаному индексуlen- Считает кол-во элемнтов в спискеclearилиcls- Очищает консольrun- Запускает скрипт
Операторы перехода используются для изменения потока выполнения программы
break- Прерывает выполнение текущего циклаcontinue- Завершает текущую итерацию цикла и переходит к следующейreturn- Возравщает указанное слово
Для коментариев используеться //
// Это коментарий
