Если ваш ввод, как и предполагалось, XML и ваш вывод это HTML, то это основной вариант использования XSLT. целая точка XML - это то, что вам не нужно писать собственный парсер, поэтому, если это делается как работа работы, а не как школьный проект, который будет первым методом использования. Если вы не можете выразить это как преобразование, вы можете посмотреть в другом месте.
Если вы не хотите использовать XML, то современные инструменты для текстовых языков включают в себя parser expression grammars и инструменты синтеза DSL, такие как Microsoft M.
PEGs освобождает вас от необходимости отдельного лекса и разбора, поэтому токен может быть контекстно-зависимым, не усложняя грамматику (так как много токенов на многих языках), а некоторые реализации означают, что вам не нужно беспокоиться о левых/правый рекурсивный цикл.
Инструменты синтеза DSL объединяют грамматику на основе IDE с семантикой времени выполнения. У Мартина Фаулера есть book on DSLs on his site.
Но для языка определения пользовательского интерфейса, который является входом для преобразования, первым может быть XML или другое стандартное отображение структуры (JSON, YAML), которое может выступать в качестве входа в XSLT-процессор через интерфейс SAX. Я попробую.
Благодарим вас за руководство! – Dan