Есть у меня один проект - генератор поточных парсеров текста,
размеченного конструкциями вида:
база построена на системе событий: обработчик идёт по тексту, выводит
этот текст в свой результирующий поток. Как только ловит подобное
macro - ищет его в таблице определений, оттуда он достаёт инфу о
процедурах которые нужно проделать когда ловится такая макра,
процедуре при начале считывании первого аргумента, окончании
считывания первого аргумента и так далее. В процедурах доступны
функции управления выводом текста, управления стеком окружений таких
макров, таблицей определений - можно переопределять макры,
доопределять, в том числе только в рамках определённого окружения
отдельного макра.
Это база, на ней строится и всякий сахар типа работы с аргументами как
со строками, заглушка вывода, механизм latex-окружений - конструкций
вида:
\begin{env}{arg1}
text bla bla bla
\end{env}
Проект пишу на CL. Одна из причин создания проекта - препроцессинг
tex-кода, нежелание учить тонкости расширения TeX его же средствами,
представления о этих средствах как о довольно убогих
инструментах. Вторая - мне нравятся подобные языки разметки и не
понимаю почему они не выходят за рамки TeX-экосистемы, когда как они
вполне могут представлять альтернативу всяким XML.
На данный момент уже есть прототип, в котором реализовано большинство
намеченных функций. Причём этот прототип у меня валяется уже год без
развития, не смотря на некоторые случаи практического применения.
Недавно я возобновил работы над проектом.
Конечно у проекта есть проблемы. Это отсутствие документации, без
которой я не вижу смысла публиковать код под свободной лицензией (а я
намерен это сделать). Это проблемы с терминологией - в коде
используются довольно неадекватные термины. Для этого я практически
закончил писанину о концепции, краткую выжимку которой я описал выше и
на основе которой буду писать документацию. Вот действительно как
назвать этот проект? Как назвать семейство таких языков, на обработку
которых нацелен проект?
Свежим взглядом прочитав код, планирую довольно глубокое
перелопачивание кода. Для этого сейчас пишу тесты, чтобы тестировать
хотя бы уже реализованные возможности.
Есть вот похожий по мотивации проект
plump-tex.