5.3 KiB
5.3 KiB
π¦ FoxLang
FoxLang β ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
β¨ ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- π§ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
- π ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°: ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ΅ΡΠ΅Π·
include("lib.fox")Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ - π€ Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡΠΌΠΈ (
user_name,get_data) - π¦ ΠΠ°ΡΡΠΈΠ²Ρ: ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
- π Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ: Π¦ΠΈΠΊΠ»Ρ
while,forΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡif/else - π’ Π‘ΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ:
int,float,string,bool,voidΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ - π§ ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
&&,||,!Π΄Π»Ρ boolean Π»ΠΎΠ³ΠΈΠΊΠΈ - π ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: ΠΠ°ΡΠΈΡΠ° ΠΎΡ ΠΊΡΠ°ΡΠ΅ΠΉ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°
- π² ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΡΠ΅Π», ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
π ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
1. Π‘Π±ΠΎΡΠΊΠ°
cd src
g++ main.cpp Lexer.cpp Parser.cpp -o foxlang
2. ΠΠ°ΠΏΡΡΠΊ
./foxlang script.fox
π» ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
int factorial(int n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
void main() {
int result = factorial(5);
print("5! = " + result);
}
main();
Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
void bubble_sort(array arr, int size) {
int i = 0;
while (i < size - 1) {
int j = 0;
while (j < size - i - 1) {
if (get(arr, j) > get(arr, j + 1)) {
int temp = get(arr, j);
set(arr, j, get(arr, j + 1));
set(arr, j + 1, temp);
}
j = j + 1;
}
i = i + 1;
}
}
ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
// math_lib.fox
int add(int a, int b) {
return a + b;
}
float average(int a, int b) {
return (a + b) / 2.0;
}
// main.fox
include("math_lib.fox");
int sum = add(10, 20);
float avg = average(15, 25);
print("Sum: " + sum + ", Average: " + avg);
Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
// config.txt ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ: server_port=8080
string config = read_file("config.txt");
print("Config: " + config);
// ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ
if (config != "") {
print("β
Config loaded successfully");
} else {
print("β Failed to load config");
}
FastAPI-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
// ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
include("src/net.fox");
// ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ API
void api_home() {
json_response("{\"message\":\"π¦ Welcome to FoxLang API!\"}");
}
void api_users() {
json_response("{\"users\":[{\"id\":1,\"name\":\"Alice\"}]}");
}
// ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°
void main() {
start_server(8080);
register_get("/", "api_home");
register_get("/users", "api_users");
print("π Server: http://localhost:8080");
}
main();
π Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
src/β ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° (C++)test/β Π’Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈdoc/β ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡCHANGELOG.mdβ ΠΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉDOCUMENTATION.mdβ ΠΠΎΠ»Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠ°
π€ Telegram Bot
FoxLang ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Telegram Π±ΠΎΡΠΎΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π° ΡΠΈΡΡΠΎΠΌ FoxLang!
ΠΡΡΡΡΡΠΉ Π·Π°ΠΏΡΡΠΊ Π±ΠΎΡΠ°:
# ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΎΠΊΠ΅Π½ Π±ΠΎΡΠ°
cd telegram_bot
nano token.txt # ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠΎΠΊΠ΅Π½ ΠΎΡ @BotFather
# ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π±ΠΎΡΠ°
./run_bot.sh
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅: telegram_bot/README.md
π§ͺ Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
# ΠΠ°ΠΏΡΡΠΊ Π²ΡΠ΅Ρ
ΡΠ΅ΡΡΠΎΠ²
./test_all.sh
# ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
./src/foxlang test/variables.fox # Π’Π΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΡΠΈΠΏΠΎΠ²
./src/foxlang test/functions.fox # Π’Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ
./src/foxlang test/arrays.fox # Π’Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
./src/foxlang test/control_flow.fox # Π’Π΅ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ
./src/foxlang test/math_operations.fox # Π’Π΅ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
./src/foxlang test/modules.fox # Π’Π΅ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
./src/foxlang test/builtin_functions.fox # Π’Π΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ
Author: SkrinVex
License: MIT