Liscript command line REPL on Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
liscript
test
.coveragerc
.pre-commit-config.yaml
.travis.yml
README.md
demo1.liscript
demo2.liscript
help.liscript
repl.py
standard_library.liscript

README.md

Build Status Build Status

Liscript-Python

Реализация интерпретатора 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 - переключение флага вывода статистики (глубина стека и количество вызовов эвал-функции)
  • : - повтор последней команды
Ссылки: