World Conquest Chronicles

World Conquest Chronicles

Интерпретатор ЯП Micro, v2.0

Скриншот примера кода и подсветки синтаксиса

Интерпретатор языка программирования Micro.

Мажорный релиз. Добавлены полустатическая типизация и построение AST, убраны ограничение на глубину рекурсии и поддержка императивного программирования.

Изменения

  • добавлена полустатическая типизация — статически типизированны только вызываемые типы (функции арности больше 0), остальные типы используют динамическую типизацию;
  • благодаря появлению полустатической типизации:
    • парсинг кода осуществляется до его выполнения;
    • осуществляется построение AST;
  • снято ограничение на глубину рекурсии (теперь рекурсия не ограничена ни Python, ни стеком);
  • убраны:
    • автоматический вызов функций при их определении;
    • поддержка императивного программирования;
    • доступ к интерпретатору (функция eval);
  • мутабельные структуры данных заменены на иммутабельные.

Описание

Описание языка.

Технологии

  • парсер:
    • лексический анализ — PLY;
    • синтаксический анализ:
      • предварительный — PLY;
      • финальный — свой;
  • язык реализации — Python;
  • режим — интерпретация.

Использование

$ python3 micro -v | --version
$ python3 micro -h | --help
$ python3 micro [-t TARGET | --target TARGET] [<script>] [<args>...]

Опции:

  • -v, --version — показать версию и выйти;
  • -h, --help — показать справку и выйти;
  • -t TARGET, --target TARGET — установить цель обработки скрипта; она может принимать следующие значения:
    • tokens;
    • preast;
    • ast;
    • evaluation (значение по умолчанию).

Аргументы:

  • <script> — путь к скрипту (если он пуст или равен -, тогда скрипт будет читаться с stdin; значение по умолчанию: -);
  • <args> — аргументы скрипта.

Репозиторий

Ссылка: https://github.com/thewizardplusplus/micro/tree/v2.0.

Содержание: код, документация, инструменты (подсветка синтаксиса) и примеры.

Лицензия: MIT.