Реализация интерпретатора Liscript на Python, консольный REPL
Запуск: python3 repl.py , автоматически подгружается стандартная библиотека
Пример интерфейса и простейших команд, детальнее в краткое описание языка:
t >>> def x 1
OK
t >>> + x 4
5
t >>> cons 1 2 3 4 5
(1 2 3 4 5)
t >>> map (lambda (i) * 10 i) (list-from-to 1 5)
(10 20 30 40 50)
Префикс t в подсказке ввода сигнализирует включенный режим TCO - оптимизации хвостовых вызовов. Режим без оптимизации - префикс n
Файлы с расширением .liscript - тескты скриптов для загрузки в интерпретатор: :l demo1.liscript
REPL воспринимает ввод либо как команды (если введенная строка начинается с символа :), либо как выражение для вычисления (во всех остальных случаях)
:q- выход:l filename- загрузить файл скрипта на выполнение:tco- переключение флага TCO (оптимизация хвостовой рекурсии):stat- переключение флага вывода статистики (глубина стека и количество вызовов эвал-функции):- повтор последней команды