Files
FoxLang/README.md
T
2026-02-05 14:59:13 +05:00

5.1 KiB
Raw Blame History

🦊 FoxLang

Version Language License

FoxLang β€” соврСмСнный ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы ΠΈ строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

✨ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности

  • πŸ”§ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  • πŸ“ ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‡Π΅Ρ€Π΅Π· include("lib.fox") с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
  • πŸ”€ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ синтаксис: Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с подчСркиваниями (user_name, get_data)
  • πŸ“¦ ΠœΠ°ΡΡΠΈΠ²Ρ‹: ВстроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° создания, чтСния ΠΈ записи массивов
  • πŸ”„ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ: Π¦ΠΈΠΊΠ»Ρ‹ while, for ΠΈ условия if/else
  • πŸ”’ Бтрогая типизация: int, float, string, bool, void с автоматичСским ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ
  • 🧠 ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° &&, ||, ! для boolean Π»ΠΎΠ³ΠΈΠΊΠΈ
  • πŸ›  Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΊΡ€Π°ΡˆΠ΅ΠΉ, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ошибки синтаксиса
  • 🎲 ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄, гСнСрация чисСл, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

πŸš€ Быстрый старт

1. Π‘Π±ΠΎΡ€ΠΊΠ° (Linux)

cd src
g++ main.cpp Lexer.cpp Parser.cpp -o foxlang

1.2. Π‘Π±ΠΎΡ€ΠΊΠ° (Windows)

cd src
g++ main.cpp Lexer.cpp Parser.cpp -o foxlang.exe

1.3. Π‘Π±ΠΎΡ€ΠΊΠ° Wimdows (MSVC)

cd src
cl main.cpp Lexer.cpp Parser.cpp /Fefoxlang.exe

2. Запуск (Linux)

./foxlang script.fox

2.1. Запуск (Windows)

foxlang.exe 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 β€” Полная докумСнтация языка

πŸ§ͺ ВСстированиС

ВСсты

./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](https://skrinvex.su)  
**License:** MIT