177 lines
5.3 KiB
Markdown
177 lines
5.3 KiB
Markdown
# π ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ 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-Π°ΡΡ Π»ΠΈΡΡ. |
|