# FromZero / Language [README in English](./README.md) · [Документация](./docs/ru/index.md) **FromZero/Language** - пакет из JIT-компилятора и виртуальной машины для языка FZL. ## Текущие возможности На данный момент язык имеет: - Встроенную функцию `printline` для вывода аргумента в stdout - Строковый, булев и числовой литералы - Арифметические операции: сложение, вычитание, умножение, деление, модуло, возведение в степень - Декларация переменных со следующими типами: - `uint`, `int` - целые числа размером с машинное слово - `i8`..`i64` - целые числа со знаком - `u8`..`u64` - целые числа без знака - `str` - строки - `bool` - булевы - Присваивание - Функции - Классы и объекты Примеры кода лежат в директории `exl/`. ## Инструкции по сборке 1. Склонировать проект: `git clone https://git.samsonium.dev/samsonium/fz-lang.git` 2. Собрать проект: `make build` После этого в корне появится директория **"build"**. В ней будут лежать два скомпилированных бинарных файла: - `fzc` - компилятор - `fz` - виртуальная машина Оба бинарных файла предоставляют справку по использованию при запуске с флагом `--help` (или `-h`). ## Гайдлайн по разработке Желательно иметь редактор кода, поддерживающий Clang LSP, так как в проекте есть готовые настройки для форматтера в виде файла `.clang-format`. Для дебаггинга есть два таргета в CMake: `build-c` для компилятора и `build-vm` для виртуальной машины. Оба таргета позволяют указать переменную с путём файла. Например, так: ```shell $ make debug-c FILE=exl/hw.fzs ``` Для проверки новых фич, нужно использовать make-таргет `test`, а тесты писать в `CMakeLists.txt`.