7.8 KiB
📚 Документация FoxLang v5.0
Оглавление
- Основы синтаксиса
- Переменные и Типы
- Пользовательские функции
- Математика и Логика
- Управляющие конструкции
- Массивы
- Модули и Импорт
- Встроенные функции
- Современный синтаксис
1. Основы синтаксиса
FoxLang использует синтаксис, похожий на C++ и Java.
- Каждая команда обязана заканчиваться точкой с запятой
;. - Блоки кода выделяются фигурными скобками
{ ... }. - Комментарии начинаются с
//и идут до конца строки. - Поддерживаются идентификаторы с подчеркиваниями (
user_name,get_data).
// Это комментарий
print("Hello"); // Команда
string user_name = "john_doe"; // Современный синтаксис
2. Переменные и Типы
Язык поддерживает пять основных типов данных:
int— Целые числа.float— Дробные числа с плавающей точкой.string— Текст в двойных кавычках.bool— Логический тип (trueилиfalse).void— Тип для функций без возвращаемого значения.
Объявление:
int health = 100;
float gravity = 9.8;
string player_name = "Player1";
bool is_alive = true;
Присваивание:
health = 90;
gravity = 1.62;
player_name = "Player2";
is_alive = false;
3. Пользовательские функции
FoxLang поддерживает полноценные пользовательские функции с параметрами и возвратом значений.
Объявление функций
// Функция с возвращаемым значением
int add(int a, int b) {
return a + b;
}
// Функция без возвращаемого значения
void greet(string name) {
print("Hello, " + name + "!");
}
// Функция без параметров
string get_version() {
return "FoxLang 5.0";
}
Вызов функций
int result = add(5, 3);
greet("Alice");
string version = get_version();
print("Version: " + version);
Рекурсивные функции
int factorial(int n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
int fact5 = factorial(5); // 120
Локальные переменные
int calculate_area(int width, int height) {
int area = width * height; // Локальная переменная
return area;
}
Важно: Нельзя объявить переменную с именем, которое уже существует в текущей области видимости. При присваивании дробного значения переменной типа
int, оно будет автоматически преобразовано в целое (отброшена дробная часть).
3. Математика и Логика
Поддерживаются стандартные арифметические операции с учетом приоритета.
Операторы
| Оператор | Описание | Пример |
|---|---|---|
+ |
Сложение / Конкатенация строк | 5 + 5 или "A" + "B" |
- |
Вычитание | 10 - 2 |
* |
Умножение | 2 * 2 |
/ |
Деление | 10 / 2 |
% |
Остаток от деления | 10 % 3 (вернет 1) |
++ |
Инкремент (увеличение на 1) | i++ (вернет старое значение, затем увеличит переменную) |
Сравнение
Операторы сравнения возвращают 1 (истина) или 0 (ложь).
==(Равно)!=(Не равно)<(Меньше)>(Больше)
4. Управляющие конструкции
Условия (If / Else)
int x = 10;
if (x == 10) {
print("X is ten");
} else {
print("X is not ten");
}
Циклы (While)
Выполняет блок кода, пока условие истинно.
int i = 0;
while (i < 5) {
print("Loop iteration: " + i);
i++;
}
Циклы (For)
Классический цикл for, состоящий из инициализации, условия и шага.
for (int i = 0; i < 5; i++) {
print("For loop: " + i);
}
Области видимости (Scope)
Блоки кода { ... } создают новую область видимости. Переменные, объявленные внутри блока, недоступны снаружи.
int global = 10;
{
int local = 5;
print(global); // 10
print(local); // 5
}
// print(local); // Ошибка! Переменная local не существует здесь.
5. Функции
Функции могут быть объявлены с типом возвращаемого значения или void.
Определение:
void myFunc() {
print("Hello from function!");
}
int square(int x) {
return x * x;
}
Вызов:
myFunc();
int result = square(5);
6. Массивы
Массивы в FoxLang имеют фиксированный размер при создании.
- Создание:
array имя размер; - Запись:
set(имя, индекс, значение); - Чтение:
get(имя, индекс) - Размер:
size(имя)
array chest 3; // Массив на 3 элемента
set(chest, 0, 55); // Записать 55 в индекс 0
print(get(chest, 0)); // Выведет 55
7. Модули и Импорт
FoxLang поддерживает импорт внешних модулей.
Используйте include("путь/к/файлу.fox");.
Особенности:
- При подключении внешних модулей код, находящийся вне функций, будет выполнен при импорте. Глобальные переменные и функции становятся доступными в текущем файле.
8. Встроенные функции
| Функция | Описание |
|---|---|
print(expr) |
Выводит текст или результат выражения в консоль. |
input() |
Останавливает программу и ждет ввода строки от пользователя. |
round(expr) |
Округляет дробное число до ближайшего целого. |
random() |
Генерирует случайное число от 0 до 99. |
read_file(filename) |
Читает первую непустую строку из файла (игнорирует комментарии #). |
http_get(url) |
Выполняет HTTP GET запрос и возвращает ответ сервера. |
fox() |
Пасхалка: выводит название языка. |