3.1 KiB
π¦ FoxLang
FoxLang β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Ρ Π½ΡΠ»Ρ Π½Π° C++. ΠΠ½ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠΎΠ³ΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (Π² ΡΡΠΈΠ»Π΅ C++/Java) Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ². ΠΡΠΎΠ΅ΠΊΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π»Π΅ΠΊΡΠ΅ΡΠ°, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ°, AST-Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
ΠΠ»Π°Π²Π½Π°Ρ ΡΠΈΡΠΊΠ° v4.0: Π£ΠΌΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠΌΠΏΠΎΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄.
β¨ ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- π ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ: ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π·
include("lib.fox")Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ. - π¦ ΠΠ°ΡΡΠΈΠ²Ρ: ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² (
array,set,get). - π Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ: ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ
whileΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡif/else. - π’ Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
intΠΈstringΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅. - π ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: ΠΠ°ΡΠΈΡΠ° ΠΎΡ ΠΊΡΠ°ΡΠ΅ΠΉ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊ ΠΈ ΡΠΈΡΠ΅Π», ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°.
- π² ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°: ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΡΠ΅Π», ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄.
π ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
1. Π‘Π±ΠΎΡΠΊΠ°
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ C++ (GCC, Clang, MSVC).
# ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
cd src
# Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ
g++ main.cpp Lexer.cpp Parser.cpp -o foxlang
(ΠΠ° Windows Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» foxlang.exe)
2. ΠΠ°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ°
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» main.fox:
print("Hello, FoxLang!");
fox();
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ:
./foxlang main.fox
π» ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°
// ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ)
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