DRAKON — инженерно-строгая система визуального алгоритмирования в духе ДРАКОН с кроссплатформенным desktop-редактором на Avalonia XAML и генерацией C-кода.
Требование «WPF XAML кроссплатформенно» технически противоречиво.
- WPF — только Windows.
- Avalonia — XAML/MVVM-подход, близкий к WPF, но реально кроссплатформенный.
Поэтому редактор реализуется на Avalonia UI.
src/Core— доменная модель языкаsrc/Validation— валидация диаграммsrc/Serialization— сохранение/загрузка JSONsrc/CodeGen— генерация C99-кодаsrc/Build— экспортmain.cиCMakeLists.txt, orchestration внешней сборкиsrc/Editor— desktop-редакторtests/Unit/*— unit teststests/Golden/*— golden tests кодогенерацииdocs— архитектура, спецификация и дорожная карта
Требуется:
- .NET SDK 8.0+
- CMake 3.20+
- C-компилятор в PATH (
gcc,clangили MSVC через генератор CMake)
Команды:
dotnet restore
dotnet build DRAKON-NX.sln
dotnet test DRAKON-NX.slnЗапуск редактора:
dotnet run --project src/Editor/Editor.csprojРеализованы:
- базовая генерация C99;
- экспорт generated C-кода в отдельный каталог;
- генерация
CMakeLists.txt; - сервис
CMakeBuildServiceдля конфигурации, сборки и запуска бинарника; - unit tests для экспортера;
- предпросмотр
main.c,CMakeLists.txtи build pipeline в редакторе.
cmake -S ./out/max_of_two -B ./out/max_of_two/build
cmake --build ./out/max_of_two/build --config Release
./out/max_of_two/build/max_of_two_appТочный путь к бинарнику зависит от генератора CMake и платформы.
Шаг 6 добавляет интерактивные команды экспорта, сборки и запуска generated C-проекта через CMake прямо из Avalonia-редактора.
Проект теперь включает консольный инструмент drakon-nx.
Примеры использования:
dotnet run --project src/Cli/Cli.csproj -- validate samples/hello-world/sample.drakon.jsondotnet run --project src/Cli/Cli.csproj -- generate samples/max-of-two/sample.drakon.json ./out/max-of-twodotnet run --project src/Cli/Cli.csproj -- build samples/max-of-two/sample.drakon.json ./out/max-of-two
