ref: remove old docs variant

This commit is contained in:
samsonium
2026-10-19 12:01:59 +03:00
parent 81d07aa6e5
commit 2d006d5e2b
12 changed files with 0 additions and 375 deletions
-17
View File
@@ -1,19 +1,2 @@
# Интерфейс компилятора
Компилятор называется `fzc`.
Он принимает исходные файлы `.fzs` и создаёт бинарный файл `.fzb`.
```
fzc [flags] <sources...>
```
| Флаг | Назначение |
| ------------- | ---------------------------------------------- |
| -h, --help | Показать справку |
| -v, --verbose | Вывести токены, AST, таблицу констант и опкоды |
| -V, --version | Показать версию |
| -o, --out | Задать имя выходного файла |
Если `-o` не задан, результат записывается в `a.fzb`. Пример: `fzc -v -o hello.fzb exl/hw.fzs`.
VM запускается командой `fz [flags] <file path>`. Флаг `-d` или `--debug` печатает опкоды, не выполняя программу.
-31
View File
@@ -1,33 +1,2 @@
# Грамматика (EBNF)
Упрощённая грамматика текущего парсера:
```
program = { statement } ;
statement = class | function | if | block | return | expression ";" ;
block = "{" { statement } "}" ;
class = "class" name "{" { declaration | function } "}" ;
function = "fn" name "(" [ parameters ] ")" [ type-name ] statement ;
parameters = parameter { "," parameter } ;
parameter = type-name name ;
return = "return" [ expression ] ";" ;
if = "if" "(" expression ")" statement [ "else" statement ] ;
expression = assignment ;
assignment = new-expression [ "=" assignment ] ;
new-expression = logical-or | "new" name ;
logical-or = logical-and { "||" logical-and } ;
logical-and = comparison { "&&" comparison } ;
comparison = term { compare-op term } ;
term = factor { ( "+" | "-" ) factor } ;
factor = power { ( "*" | "/" | "%" ) power } ;
power = unary [ "^" unary ] ;
unary = ( "+" | "-" | "!" ) unary | postfix ;
postfix = primary { call | member } ;
call = "(" [ expression { "," expression } ] ")" ;
member = "." name ;
primary = literal | declaration | name | "(" expression ")" ;
declaration = type-name name ;
type-name = builtin-type | name ;
```
`literal` включает строковый, числовой, булев и `null` литералы. Комментарии `// ...` и пробельные символы между токенами игнорируются.
-15
View File
@@ -1,17 +1,2 @@
# Операторы
| Оператор | Назначение |
| -------------------- | -------------------------------------- |
| +, - | Сложение/вычитание, унарные плюс/минус |
| *, /, % | Умножение, деление, остаток |
| ^ | Возведение в степень |
| ==, !=, <, <=, >, >= | Сравнение |
| ! | Логическое отрицание |
| &&, || | Логические И и ИЛИ |
| = | Присваивание |
| . | Доступ к полю и методу |
Для строк и объектов доступны только `==` и `!=`.
Ключевое слово `new` создаёт экземпляр класса: `new Point`.
Приоритет от большего к меньшему: унарные операции; ^; *, /, %; +, -; сравнения; &&; ||; =. Скобки имеют высший приоритет.
-20
View File
@@ -1,22 +1,2 @@
# Система типов
| Типы | Значение |
| ----------------- | ---------------------------------------- |
| int, uint | Целое машинного размера |
| i8, i16, i32, i64 | Знаковые целые фиксированного размера |
| u8, u16, u32, u64 | Беззнаковые целые фиксированного размера |
| str | Строка |
| char | Символ |
| bool | Булево значение |
| ClassName | Экземпляр пользовательского класса |
Также существует `null`, применимое к объектным значениям.
Тип указывается при объявлении переменной, поля и аргумента функции.
Объект совместим с объектом того же класса или с `null`.
Объекты разных классов несовместимы.
Строки поддерживают `==` и `!=`, объекты сравниваются по ссылке.
Поля класса имеют объявленные типы и последовательные слоты.
Для функции тип результата указывается после списка параметров.
Для функции без результата его можно опустить.