предлагаю вниманию цветной вариант манипуляторов. попытался использовать цвет
и юникоды символы для записи манипуляторов, с целью избежать префиксов, забеганий
вперед и механизма NOTFOUND. Нет генерации кода из манипулятора, есть преобразование
из манипуляторной формы записи текста в обычный форт-текст, который можно
использовать почти в любой форт-системе.
для зкспериментов надо запустить два приложения веб-сервер и браузер (хром).
веб-сервер немного переделанный сервер от ~day, csm80.exe слушает на 80 порту,
а если он занят можно использовать csm86.exe для 86 порта или поправить на
необходимый в csmserver.f и скомпилировать.
в браузере открыть страничку localhost (или localhost:86)
используется покоцаный по цветовой палитре и минимизированным меню веб-редактор wysiwyg.js
(
http://wysiwygjs.github.io/ https://github.com/wysiwygjs/wysiwyg.js)
контекстное меню вызывается при выделении текста и при клике правой кнопкой.
действуют копи/паста (ctrl+C/ctrl+V), перемещения выделенного блока мышкой.
выделенный текст перетаскивается (копируется) и между вкладками браузера.
Иногда наблюдаются артефакты с изменением размера шрифта, пробуйте откатиться
назад с помощью ctrl+Z. open/save открыть/сохранить текст в файл, code -
преобразовать манипулятор в чистый форт-текст, здесь надо внимательно, перед
преобразованием текст сохраняется автоматически в файл и повторное нажатие code
(два раза подряд) приведет к потере исходного манипулятора.
Для структур ветвления и циклов используется набор юникод символов в виде
кружков с латинскими буквами внутри (аналогия - дорожные знаки), цвета для
этих символов тоже задействованы светофорные.
Все правила преобразования в файле makecode.f и можно добавить либо изменить
что-либо в нем и не перезагружая веб-сервер, командой в его консоли
makecode.f загрузить изменения и сразу протестировать.
Для выполнения полученного кода надо подключить файл csm-var.f или csm-usr.f
можно определения не используемых переменных и векторов выкинуть.
Думаю хорошо продуманный и факторизированный код будет напоминать хайку.
удачного хайкинга!