Skip to content

vldF/stella-type-checker

Repository files navigation

Инструкция

Необходима Java версии 11 и выше

  1. Скачать последнюю сборку или собрать её самостоятельно:
    1. Склонить репозиторий и сабмодуль с тестами:
      git clone --recurse-submodules https://github.com/vldF/stella-labs
    2. Собрать проект:
      ./gradlew build
    3. Сгенерируются архивы ./build/distributions/stella-labs.(tar|zip). Выберите любой и распакуйте.
  2. Воспользуйтесь скриптом внутри папки bin для своей ОС
  3. Введите в консоль текст программы, а затем отправьте EOF (ctrl+d, на macos иногда command+z). Не забудьте после ввода последней строчки перед EOF отправить пустую строку!
  4. Выведется или сообщение 'OK' если всё в порядке, или основная ошибка с описанием и кодом возврата 1

Тесты

Для запуска тестов можно воспользоваться пресетами запуска в IntelliJ Idea:

  1. Generate Tests генерирует файл StellaTests.kt, который позволяет запускать наборы тестов (все, для конкретных ошибок или по одному)
  2. Run Supported Tests запускает поддерживаемые тесты. Список поддерживаемых расширений указывается в StellaTestsRunner.kt
  3. Run All Tests запускает все доступные тесты

Тестовые данные находятся в git submodule stella-tests. После добавления новых необходимо запустить Generate Tests для актуализации файла StellaTests.kt.

Также, можно запустить тесты при помощи gradle:

  1. Градл-таска :runAllTests запускает все тесты
  2. Таска :test только поддерживаемые

Поддерживаются

  1. Ядро языка Stella (логические типы, натуральные числа, функции)
  2. let-связывания
  3. приписывание типа (аннотация)
  4. единичный тип
  5. пары
  6. записи
  7. типы-суммы и варианты
  8. рекурсия общего вида и оператор неподвижной точки
  9. встроенные списки

Дополнительно

  1. natural literals
  2. вложенные функции
  3. проверка арности главной функции

About

Simple type checker for Stella Programming Language

Topics

Resources

Stars

Watchers

Forks