добавление wiki

student
2025-10-31 10:03:52 +03:00
parent 35e0cc8f4e
commit 334b720914

@@ -1,65 +1,65 @@
## Пример стандартной конфигурации ## Пример стандартной конфигурации
```json ```json
{ {
"unicode": true, "unicode": true,
"tape_size": 30000, "tape_size": 30000,
"load_dump": "data_in.bin", "load_dump": "data_in.bin",
"save_dump": "data_out.bin", "save_dump": "data_out.bin",
"sources": [ "sources": [
"example/hw.bf" "example/hw.bf"
], ],
"compiled": "bin/hw.bfc", "compiled": "bin/hw.bfc",
"lint": [ "lint": [
{ {
"name": "brackets", "name": "brackets",
"level": "error", "level": "error",
"expected": "=1" "expected": "=1"
}, },
{ {
"name": "operators", "name": "operators",
"level": "warning", "level": "warning",
"expected": "=1" "expected": "=1"
}, },
{ {
"name": "loop_depth", "name": "loop_depth",
"level": "warning", "level": "warning",
"expected": "<=100" "expected": "<=100"
}, },
{ {
"name": "loop_depth", "name": "loop_depth",
"level": "error", "level": "error",
"expected": "<=255" "expected": "<=255"
}, },
{ {
"name": "pointer_balance", "name": "pointer_balance",
"level": "error", "level": "error",
"expected": "<0" "expected": "<0"
}, },
{ {
"name": "pointer_balance", "name": "pointer_balance",
"level": "warning", "level": "warning",
"expected": ">30000" "expected": ">30000"
} }
] ]
} }
``` ```
## Параметры ## Параметры
* `unicode` - добавляет в brainfuck поддержку UTF-8 символов за счёт увеличения размера ячеек с byte до uint. * `unicode` - добавляет в brainfuck поддержку UTF-8 символов за счёт увеличения размера ячеек с byte до uint.
* `tape_size` - позволяет указать количество ячеек в ленте. * `tape_size` - позволяет указать количество ячеек в ленте.
* `load_dump` и `save_dump` - позволяют сохранять и загружать состояние ленты. * `load_dump` и `save_dump` - позволяют сохранять и загружать состояние ленты.
* `sources` - список путей к файлам и папкам с исходным кодом. * `sources` - список путей к файлам и папкам с исходным кодом.
* `compiled` - путь к файлу промежуточной компиляции. * `compiled` - путь к файлу промежуточной компиляции.
* `lint` - фильтры проверки кода. См ниже. * `lint` - фильтры проверки кода. См ниже.
## Линтер ## Линтер
Набор функций проверяющих код перед сборкой промежуточного файла. Могут выводить значения метрик, предупреждения и ошибки, прерывающие процесс. Набор функций проверяющих код перед сборкой промежуточного файла. Могут выводить значения метрик, предупреждения и ошибки, прерывающие процесс.
### Список фильтров ### Список фильтров
* `brackets` - проверяет скобки в коде на колличество и расположение. * `brackets` - проверяет скобки в коде на колличество и расположение.
* `operators` - проверяет соответствие кода и набора допустимых символов. * `operators` - проверяет соответствие кода и набора допустимых символов.
* loop_depth` - проверяет максимальную глубину цикла. * loop_depth` - проверяет максимальную глубину цикла.
* `pointer_balance` - проверяет максимальный сдвиг указателя. При выходе за ленту в меньшую сторону возвращает `-1`. * `pointer_balance` - проверяет максимальный сдвиг указателя. При выходе за ленту в меньшую сторону возвращает `-1`.