# 🦊 FoxLang ![Version](https://img.shields.io/badge/version-5.0.1-orange) ![Language](https://img.shields.io/badge/language-C++17-blue) ![License](https://img.shields.io/badge/license-MIT-green) **FoxLang** β€” соврСмСнный ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы ΠΈ строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ## ✨ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности - **πŸ”§ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:** Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ - **πŸ“ ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма:** ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‡Π΅Ρ€Π΅Π· `include("lib.fox")` с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ - **πŸ”€ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ синтаксис:** Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с подчСркиваниями (`user_name`, `get_data`) - **πŸ“¦ ΠœΠ°ΡΡΠΈΠ²Ρ‹:** ВстроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° создания, чтСния ΠΈ записи массивов - **πŸ”„ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ:** Π¦ΠΈΠΊΠ»Ρ‹ `while`, `for` ΠΈ условия `if/else` - **πŸ”’ Бтрогая типизация:** `int`, `float`, `string`, `bool`, `void` с автоматичСским ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ - **🧠 ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:** ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° `&&`, `||`, `!` для boolean Π»ΠΎΠ³ΠΈΠΊΠΈ - **πŸ›  Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ:** Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΊΡ€Π°ΡˆΠ΅ΠΉ, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ошибки синтаксиса - **🎲 ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:** ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄, гСнСрация чисСл, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ## πŸš€ Быстрый старт ### 1. Π‘Π±ΠΎΡ€ΠΊΠ° ```bash cd src g++ main.cpp Lexer.cpp Parser.cpp -o foxlang ``` ### 2. Запуск ```bash ./foxlang script.fox ``` ## πŸ’» ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ### ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ```cpp int factorial(int n) { if (n <= 1) { return 1; } return n * factorial(n - 1); } void main() { int result = factorial(5); print("5! = " + result); } main(); ``` ### Π Π°Π±ΠΎΡ‚Π° с массивами ```cpp void bubble_sort(array arr, int size) { int i = 0; while (i < size - 1) { int j = 0; while (j < size - i - 1) { if (get(arr, j) > get(arr, j + 1)) { int temp = get(arr, j); set(arr, j, get(arr, j + 1)); set(arr, j + 1, temp); } j = j + 1; } i = i + 1; } } ``` ### ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма ```cpp // math_lib.fox int add(int a, int b) { return a + b; } float average(int a, int b) { return (a + b) / 2.0; } // main.fox include("math_lib.fox"); int sum = add(10, 20); float avg = average(15, 25); print("Sum: " + sum + ", Average: " + avg); ``` ### Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ```cpp // config.txt содСрТит: server_port=8080 string config = read_file("config.txt"); print("Config: " + config); // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ чтСния if (config != "") { print("βœ… Config loaded successfully"); } else { print("❌ Failed to load config"); } ``` ### HTTP запросы ```cpp // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с API string response = http_get("https://api.github.com/users/octocat"); if (response != "") { print("βœ… API response received"); print("Data: " + response); } else { print("❌ Failed to fetch data"); } ``` ## πŸ“‚ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° * `src/` β€” Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° (C++) * `test/` β€” ВСсты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ * `doc/` β€” ДокумСнтация * `CHANGELOG.md` β€” Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ * `DOCUMENTATION.md` β€” Полная докумСнтация языка ## πŸ€– Telegram Bot FoxLang поставляСтся с Telegram Π±ΠΎΡ‚ΠΎΠΌ, написанным Π½Π° чистом FoxLang! ### Быстрый запуск Π±ΠΎΡ‚Π°: ```bash # НастройтС Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π° cd telegram_bot nano token.txt # Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ ΠΎΡ‚ @BotFather # ЗапуститС Π±ΠΎΡ‚Π° ./run_bot.sh ``` ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅: [telegram_bot/README.md](telegram_bot/README.md) ## πŸ§ͺ ВСстированиС ```bash # Запуск всСх тСстов ./test_all.sh # ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ тСсты ./src/foxlang test/variables.fox # ВСст ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚ΠΈΠΏΠΎΠ² ./src/foxlang test/functions.fox # ВСст ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ./src/foxlang test/arrays.fox # ВСст массивов ./src/foxlang test/control_flow.fox # ВСст Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ условий ./src/foxlang test/math_operations.fox # ВСст матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ./src/foxlang test/modules.fox # ВСст ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы ./src/foxlang test/builtin_functions.fox # ВСст встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ``` --- **Author:** [SkrinVex](https://skrinvex.su) **License:** MIT