# πŸ“š БистСма Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ FoxLang ## Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ include FoxLang ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· `include("filename.fox")`. БистСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ### Поиск Ρ„Π°ΠΉΠ»ΠΎΠ² 1. **ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ**: Π‘Π½Π°Ρ‡Π°Π»Π° ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ .fox Ρ„Π°ΠΉΠ»Π° 2. **ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ**: Если Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈΡ‰Π΅Ρ‚ рядом с исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ ### Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ``` project/ β”œβ”€β”€ main.fox # Основной скрипт β”œβ”€β”€ libs/ # Папка с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ β”‚ β”œβ”€β”€ net.fox # Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β”‚ β”œβ”€β”€ utils.fox # Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ β”‚ └── math.fox # ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ └── foxlang # Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» ``` ### ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ```cpp // Π’ main.fox include("libs/net.fox"); // ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ main.fox include("libs/utils.fox"); // Π’Π΅ΠΏΠ΅Ρ€ΡŒ доступны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ string ip = get_public_ip(); int result = max(10, 20); ``` ## 🌐 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° net.fox ### Π§Ρ‚ΠΎ измСнилось **РаньшС**: net.fox Π±Ρ‹Π» просто Π·Π°Π³Π»ΡƒΡˆΠΊΠΎΠΉ с коммСнтариями **БСйчас**: ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ функциями высокого уровня ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ #### HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ```cpp // ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ GET с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок string response = get("https://api.example.com"); // POST с JSON Π΄Π°Π½Π½Ρ‹ΠΌΠΈ string result = post_json("https://api.example.com/data", "{\"key\":\"value\"}"); // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ IP string ip = get_public_ip(); ``` #### TCP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ```cpp // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° доступности сСрвСра bool available = ping("google.com", 80); // ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСния с автоматичСским ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ соСдинСниСм string response = send_message("localhost", 8080, "Hello Server!"); ``` #### Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ```cpp // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСния if (is_online()) { print("Internet is available"); } ``` ### ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Π½ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ 1. **АвтоматичСская ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок**: НС Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² 2. **Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ API**: Одна функция вмСсто Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… 3. **Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ**: ping, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ IP 4. **Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ**: АвтоматичСскоС Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ соСдинСний ## πŸ›  Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° utils.fox ### ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ```cpp int maximum = max(15, 23); int minimum = min(15, 23); ``` ### Π Π°Π±ΠΎΡ‚Π° со строками ```cpp string repeated = repeat("Fox", 3); // "FoxFoxFox" bool starts = starts_with("FoxLang", "Fox"); // true ``` ### Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для массивов ```cpp array numbers 5; // ... Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива ... print_array(numbers, 5); // Π’Ρ‹Π²ΠΎΠ΄ содСрТимого bubble_sort(numbers, 5); // Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ``` ## πŸ“ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ```cpp // main.fox include("libs/net.fox"); include("libs/utils.fox"); print("=== FoxLang Project Demo ==="); // Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ if (is_online()) { string ip = get_public_ip(); print("Your IP: " + ip); } // ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° int result = max(42, 17); print("Maximum: " + result); // ΠœΠ°ΡΡΠΈΠ²Ρ‹ array data 3; set(data, 0, 100); set(data, 1, 50); set(data, 2, 75); print("Before sorting:"); print_array(data, 3); bubble_sort(data, 3); print("After sorting:"); print_array(data, 3); ``` ## πŸš€ Запуск ```bash # ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ cd src g++ main.cpp Lexer.cpp Parser.cpp -o foxlang # Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ./foxlang ../test/example_with_libs.fox ``` ## πŸ’‘ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ 1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ `libs/` 2. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· `include("libs/your_lib.fox")` 4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² основном ΠΊΠΎΠ΄Π΅ БистСма автоматичСски Π½Π°ΠΉΠ΄Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вашСго скрипта!