From 4a54c2a923de20c1e09d4b2c76931a93be1e2dd3 Mon Sep 17 00:00:00 2001 From: SkrinVex Date: Thu, 25 Dec 2025 17:20:14 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20re?= =?UTF-8?q?adme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4857fc2 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# 🦊 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-Π΄Π΅Ρ€Π΅Π²Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. + +> **Главная Ρ„ΠΈΡˆΠΊΠ° v4.0:** Умная систСма ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, которая позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, выполняя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ игнорируя исполняСмый ΠΊΠΎΠ΄. + +## ✨ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности + +- **πŸ“ ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ:** ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· `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 \ No newline at end of file