3.1 KiB
3.1 KiB
🦊 FoxLang
FoxLang — это интерпретируемый язык программирования общего назначения, разработанный с нуля на C++. Он сочетает строгий синтаксис (в стиле C++/Java) с динамической гибкостью скриптовых языков. Проект демонстрирует реализацию собственного лексера, рекурсивного парсера, AST-дерева и модульной архитектуры.
Главная фишка v4.0: Умная система импорта, которая позволяет подключать библиотеки, выполняя только объявления функций и игнорируя исполняемый код.
✨ Ключевые возможности
- 📁 Модульность: Подключение файлов через
include("lib.fox")с поддержкой относительных путей. - 📦 Массивы: Встроенная поддержка создания, чтения и записи массивов (
array,set,get). - 🔄 Управление потоком: Полноценные циклы
whileи условияif/else. - 🔢 Типизация: Поддержка
intиstringс автоматическим приведением типов при выводе. - 🛠 Безопасность: Защита от крашей при сравнении строк и чисел, информативные ошибки синтаксиса.
- 🎲 Встроенная библиотека: Генерация чисел, математика, ввод/вывод.
🚀 Быстрый старт
1. Сборка
Вам понадобится любой компилятор C++ (GCC, Clang, MSVC).
# Перейдите в папку с исходным кодом
cd src
# Скомпилируйте проект
g++ main.cpp Lexer.cpp Parser.cpp -o foxlang
(На Windows будет создан файл foxlang.exe)
2. Запуск скрипта
Создайте файл main.fox:
print("Hello, FoxLang!");
fox();
Запустите его:
./foxlang main.fox
💻 Пример кода
// Подключаем библиотеку (код внутри не выполняется, только функции запоминаются)
include("math_lib.fox");
int x = 10;
if (x > 5) {
print("X is big!");
} else {
print("X is small.");
}
// Работа с массивом
array nums 3;
set(nums, 0, 555);
print("Array elem: " + get(nums, 0));
📂 Структура проекта
src/— Исходный код интерпретатора (C++).test/— Примеры скриптов.fox.doc/— Документация.
Author: [SkrinVex]
License: MIT