From b8e13a6cc081e86c4d20eaf90d5f7cc07d446990 Mon Sep 17 00:00:00 2001 From: SkrinVex <120197437+SkrinVex@users.noreply.github.com> Date: Thu, 25 Dec 2025 17:05:42 +0500 Subject: [PATCH 1/2] Create c-cpp.yml --- .github/workflows/c-cpp.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/c-cpp.yml diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml new file mode 100644 index 0000000..fbf32ec --- /dev/null +++ b/.github/workflows/c-cpp.yml @@ -0,0 +1,23 @@ +name: C/C++ CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: configure + run: ./configure + - name: make + run: make + - name: make check + run: make check + - name: make distcheck + run: make distcheck From fa5a586dee321253529d28ad6fcbd74e45db9222 Mon Sep 17 00:00:00 2001 From: SkrinVex <120197437+SkrinVex@users.noreply.github.com> Date: Thu, 25 Dec 2025 17:13:40 +0500 Subject: [PATCH 2/2] Create README.md --- 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..b4fcb2c --- /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