Я работаю с DSL, основанным на схеме XML, которая поддерживает функции функционального языка, такие как циклы, переменное состояние с контекстом и вызовы внешних классов Java. Я хотел бы написать инструмент, который берет XML-документ и преобразует его, по крайней мере, во что-то похожее на Java, где теги <set>
преобразуются в присваивания переменных, циклы преобразуются в циклы for
, и т. д.
Я изучал ANTLR, а также стандартные синтаксические анализаторы XML, и мне интересно, есть ли рекомендуемый способ сделать это. Можно ли преобразовать такой XML-документ во что-то, что можно конвертировать в Java, если не напрямую?
Я готов написать разбор через SAX, который пишет промежуточный язык на основе каждого тега, если это рекомендуемый способ, но часть, которая дает мне паузу, заключается в том, что он основан на контексте точно так же, как язык как и Схема, с дочерними элементами любого тега, полностью вычисляемыми перед родителем.