Языки f2plw
Языки описываются как данные: алфавит, лексемы, автомат состояний, таблицы и шаблоны вывода. Такой язык можно положить на холст графом, разобрать им текст в блоки, сгенерировать из текста код и документацию, а из нескольких файлов собрать проект. Работает это через сайдкар на сервере, в браузер и агент транслятор не уезжает.
Узел «Код на языке»
Положите узел, выберите язык из библиотеки, напишите текст.
- Разобрать в блоки: текст превращается в узлы данных группой под узлом. Разбор живёт в пространстве имён узла, соседние разборы не сталкиваются, повторный заменяет свой прошлый.
- Сгенерировать: выходы языка. Адресат на выбор: блоками рядом, архивом-вложением с чтением по записям или деревом в папку через узел write-tree.
- Собрать: для языков с трансляцией в Си выходы компилируются и запускаются. Дома это делает сервер, в облаке только компиляция, а запуск в песочнице wasm или через агента.
- Вызов метода API: у языка API рядом появляется источник, который вызывает метод описания через песочницу.
Несколько человек могут жать кнопки одновременно: текст уезжает слепком, второй клик по тому же узлу ждёт первого.
Проект
«PLW → проект из узлов холста» собирает узлы кода разных языков в один проект: файлы сливаются в одну таблицу, константы ошибок и конфигов и методы API видны коду через мосты. Источником могут быть узлы холста, каталог агента или каталог песочницы сервера. Выходы языка-хозяина, таблицы проекта на холст или сборка бинарника.
Библиотека языков
INI, ACTIONS, DICE, OUTLINE, EXPR, API, ERRORS, CONFIG, LANG, MINIC, MINIOOP и другие. «PLW → язык на холст» кладёт язык графом, «сохранить язык на сервер» правит библиотеку из холста: в облаке у команды своя песочница языков, дома библиотека общая.
knw
Схема базы или мира в текстовой форме knw разбирается в граф таблиц и полей, а граф с холста собирается обратно в текст. Из knw генерируются схемы, SQL, модели и документация.
Редактор и живая проверка
Файлы на языках f2plw открываются в редакторе файлов с подсветкой по состояниям разбора, проблемами с позицией и списком ожидаемого, дополнением по Ctrl+Space. Как это работает, описано в главе «Код на холсте».
Мета-язык проекта
Описание на языке f2plw может быть мета-файлом узла «Проект»: правила генерации языка дают файлы проекта прямо в папку агента, дальше идут задания сборки и цепочка сборки. Подробности в главе «Проект».
Примеры
Страница «Примеры» открывает 26 готовых холстов прямо в приложении.