# 🦊 FoxLang ![Version](https://img.shields.io/badge/version-4.0.0-orange) ![Language](https://img.shields.io/badge/language-C++17-blue) ![License](https://img.shields.io/badge/license-MIT-green) **FoxLang** β€” это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с нуля Π½Π° C++. Он сочСтаСт строгий синтаксис (Π² стилС C++/Java) с динамичСской Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ скриптовых языков. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ дСмонстрируСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ собствСнного лСксСра, рСкурсивного парсСра, AST-Π΄Π΅Ρ€Π΅Π²Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. ## ✨ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности - **πŸ“ ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ:** ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· `include("lib.fox")` с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ. - **πŸ“¦ ΠœΠ°ΡΡΠΈΠ²Ρ‹:** ВстроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° создания, чтСния ΠΈ записи массивов (`array`, `set`, `get`). - **πŸ”„ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ:** ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ `while` ΠΈ условия `if/else`. - **πŸ”’ Випизация:** ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° `int` ΠΈ `string` с автоматичСским ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅. - **πŸ›  Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ:** Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΊΡ€Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΈ сравнСнии строк ΠΈ чисСл, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ошибки синтаксиса. - **🎲 ВстроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°:** ГСнСрация чисСл, ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄. ## πŸš€ Быстрый старт ### 1. Π‘Π±ΠΎΡ€ΠΊΠ° Π’Π°ΠΌ понадобится любой компилятор C++ (GCC, Clang, MSVC). ```bash # ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ с исходным ΠΊΠΎΠ΄ΠΎΠΌ cd src # Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ g++ main.cpp Lexer.cpp Parser.cpp -o foxlang ``` *(На Windows Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» `foxlang.exe`)* ### 2. Запуск скрипта Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» `main.fox`: ```cpp print("Hello, FoxLang!"); fox(); ``` ЗапуститС Π΅Π³ΠΎ: ```bash ./foxlang main.fox ``` ## πŸ’» ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ```cpp // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅ выполняСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ) 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