Фиксация мамы нолнан с сфере IT с симпатией к атусу стоещему на полигоне

с афроо лошадьми
This commit is contained in:
SkrinVex
2026-01-20 22:04:44 +05:00
parent 024444abdb
commit 4365a50cda
45 changed files with 2941 additions and 470 deletions
+152
View File
@@ -0,0 +1,152 @@
# 📚 Система библиотек 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. Используйте функции в основном коде
Система автоматически найдет файл относительно вашего скрипта!