🦊 FoxLang

Version Language License

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

S
Description
Is stupid programming language
Readme MIT 562 KiB
Languages
C++ 100%