# FromZero / Language [README in English](./README.md) **FromZero/Language** - пакет из JIT-компилятора и виртуальной машины для языка FZL. ## Текущие возможности На данный момент язык имеет: - Встроенную функцию `printline` для вывода аргумента в stdout - Строковый и числовой литералы - Арифметические операции: сложение, вычитание, умножение, деление, модуло, возведение в степень - Декларация переменных со следующими типами: - `uint`, `int` - целые числа размером с машинное слово - `i8`..`i64` - целые числа со знаком - `u8`..`u64` - целые числа без знака - `str` - строки - `bool` - булевы - Присваивание Примеры кода лежат в директории `exl/`. ## Расширения файлов Стандартными для языка являются два расширения файлов: - `.fzs` - исходный код - `.fzb` - скомпилированный бинарный файл ## Инструкции по сборке 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 ```