The Dragon Language — краткая документация
Обзор overview
TDL — минималистичный интерпретируемый язык. В этой странице — самое важное: лексика, грамматика, вызовы и примеры, которые работают с интерпретатором.
Лексика tokens
Основные токены: NUMBER, STRING, NAME, NEWLINE, OP. Комментарии начинаются с #.
# числа
x = 42
# строки
s = "hello\nworld"
Грамматика syntax
Поддерживаются def, if, while, return. Тела можно писать в { ... } или одной инструкцией после заголовка.
def add(a, b) {
return a + b
}
if x > 0 {
print("plus")
}
Типы types
Поддерживаются числа (int/float), строки и булевы значения true/false. Значения представлены Python-типами внутри интерпретатора.
Переменные и область scope
Переменные живут в окружениях Env. Присваивание обновляет существующую переменную в ближайшем доступном окружении или создаёт локальную по умолчанию.
Операторы ops
Поддерживаются арифметические, сравнения и логические операторы. Приоритет: or < and < сравнения < + - < * / %.
1 + 2 * 3 == 7
not false
Управляющие конструкции flow
if и while работают как в знакомых языках. Внутренний return прерывает функцию через исключение-«return».
Функции functions
Определяются через def name(params) { ... }. Функции — объекты с замыканием: хранят окружение при создании. Вызов проверяет число аргументов.
def greet(name) {
print("Hello, " + name)
}
greet("Alduin")
Примеры examples
fori = 1
while fori <= 15 {
if fori % 15 == 0 { print("FizzBuzz") }
elif fori % 3 == 0 { print("Fizz") }
elif fori % 5 == 0 { print("Buzz") }
else { print(fori) }
fori = fori + 1
}
Запуск run
Запускается через Python-скрипт-интерпретатор. Простейшие шаги:
- Сохранить код как
file.tdl - Запустить:
python3 interpreter.py file.tdl(имя скрипта — тот код, что у тебя есть)
Встроенный "play" позволяет вставить пример и увидеть преобразованный AST (ограничено — локально в браузере нет Python-рантайма).