# πŸ“š ДокумСнтация FoxLang v4.0 ## ОглавлСниС 1. [ΠžΡΠ½ΠΎΠ²Ρ‹ синтаксиса](#1-основы-синтаксиса) 2. [ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π’ΠΈΠΏΡ‹](#2-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅-ΠΈ-Ρ‚ΠΈΠΏΡ‹) 3. [ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ Π›ΠΎΠ³ΠΈΠΊΠ°](#3-ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°-ΠΈ-Π»ΠΎΠ³ΠΈΠΊΠ°) 4. [Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции](#4-ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅-конструкции) 5. [Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ](#5-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) 6. [ΠœΠ°ΡΡΠΈΠ²Ρ‹](#6-массивы) 7. [ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π˜ΠΌΠΏΠΎΡ€Ρ‚](#7-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ-ΠΈ-ΠΈΠΌΠΏΠΎΡ€Ρ‚) 8. [ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ](#8-встроСнныС-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) --- ## 1. ΠžΡΠ½ΠΎΠ²Ρ‹ синтаксиса FoxLang ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ синтаксис, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° C++ ΠΈ Java. * КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° **обязана** Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой `;`. * Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками `{ ... }`. * ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с `//` ΠΈ ΠΈΠ΄ΡƒΡ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки. ```cpp // Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ print("Hello"); // Команда ``` --- ## 2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π’ΠΈΠΏΡ‹ Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…: * `int` β€” Π¦Π΅Π»Ρ‹Π΅ числа (Π²Π½ΡƒΡ‚Ρ€ΠΈ хранятся ΠΊΠ°ΠΊ double). * `string` β€” ВСкст Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…. **ОбъявлСниС:** ```cpp int health = 100; string name = "Player1"; ``` **ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅:** ```cpp health = 90; name = "Player2"; ``` > **Π’Π°ΠΆΠ½ΠΎ:** НСльзя ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΆΠ΅ сущСствуСт Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ области видимости. --- ## 3. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ Π›ΠΎΠ³ΠΈΠΊΠ° ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ стандартныС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅/Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π½ΡŒΡˆΠ΅ слоТСния/вычитания). ### ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ | ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ | ОписаниС | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ | | --- | --- | --- | | `+` | Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк | `5 + 5` ΠΈΠ»ΠΈ `"A" + "B"` | | `-` | Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ | `10 - 2` | | `*` | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ | `2 * 2` | | `/` | Π”Π΅Π»Π΅Π½ΠΈΠ΅ | `10 / 2` | | `%` | ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния | `10 % 3` (Π²Π΅Ρ€Π½Π΅Ρ‚ 1) | ### Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ `1` (истина) ΠΈΠ»ΠΈ `0` (лоТь). Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ с числами, ΠΈ со строками. * `==` (Π Π°Π²Π½ΠΎ) * `!=` (НС Ρ€Π°Π²Π½ΠΎ) * `<` (МСньшС) * `>` (Π‘ΠΎΠ»ΡŒΡˆΠ΅) --- ## 4. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции ### Условия (If / Else) ```cpp int x = 10; if (x == 10) { print("X is ten"); } else { print("X is not ten"); } ``` ### Π¦ΠΈΠΊΠ»Ρ‹ (While) ВыполняСт Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ° условиС истинно. ```cpp int i = 0; while (i < 5) { print("Loop iteration: " + i); i = i + 1; } ``` --- ## 5. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом `void`. Они ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ (общая ΠΏΠ°ΠΌΡΡ‚ΡŒ). **ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:** ```cpp void myFunc() { print("Hello from function!"); } ``` **Π’Ρ‹Π·ΠΎΠ²:** ```cpp myFunc(); ``` --- ## 6. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² FoxLang ΠΈΠΌΠ΅ΡŽΡ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ создании. 1. **Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅:** `array имя Ρ€Π°Π·ΠΌΠ΅Ρ€;` 2. **Π—Π°ΠΏΠΈΡΡŒ:** `set(имя, индСкс, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);` 3. **Π§Ρ‚Π΅Π½ΠΈΠ΅:** `get(имя, индСкс)` 4. **Π Π°Π·ΠΌΠ΅Ρ€:** `size(имя)` ```cpp array chest 3; // Массив Π½Π° 3 элСмСнта [0, 0, 0] set(chest, 0, 55); // Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 55 Π² индСкс 0 print(get(chest, 0)); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ 55 ``` --- ## 7. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π˜ΠΌΠΏΠΎΡ€Ρ‚ FoxLang v4.0 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `include("ΠΏΡƒΡ‚ΡŒ/ΠΊ/Ρ„Π°ΠΉΠ»Ρƒ.fox");`. **ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:** * **ВаТная информация:** ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² связи с оссобСнностями c++, Ссли Π² скриптС Π΅ΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΊΠΎΡ€Π½Π΅ скрипта Ρ‚ΠΎ ΠΎΠ½Π° Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΈ ошибкам. **ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** `lib.fox`: ```cpp void hello() { print("Hi!"); } hello(); // Π­Ρ‚ΠΎ выполнтся ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ``` `main.fox`: ```cpp include("lib.fox"); hello(); // ΠœΡ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ``` --- ## 8. ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ | Ѐункция | ОписаниС | | --- | --- | | `print(expr)` | Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ тСкст ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния Π² консоль. | | `input()` | ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΆΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° строки ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. | | `round(expr)` | ΠžΠΊΡ€ΡƒΠ³Π»ΡΠ΅Ρ‚ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ. | | `random()` | Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ случайноС число ΠΎΡ‚ 0 Π΄ΠΎ 99. | | `fox()` | ΠŸΠ°ΡΡ…Π°Π»ΠΊΠ°: Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ASCII-Π°Ρ€Ρ‚ лисы. |