Is ANTLR suitable for markup-to-markup compilation?

notTheCat@lemmy.ml to Programming@programming.dev – 17 points –

I want to compile a docx file into a Typst file, I believe deep down docx is XML, and Typst is close to markdown with interesting functionalities, is that feasible? Note that Typst does have syntax to define functions and call them and I want to create special functions during the code gen step, is ANTLR the right tool for the job? Are there better tools? I want to have as few bugs as possible

8

Antlr sounds excessive for either of those. Use an ordinary xml library for docx (if there's not already one for docx) and something simple for typst.

I want to compile the docx INTO a typst file, not a separate parser for each

Oh, ok, antlr would be inappropriate then. I'd check whether pandoc already does that conversion.

I just checked, it does convert to Typst but I do want to write custom stuff alongside what pandoc will output, that seems like the right tool and saves me a lot of efforts, thanks

ANTLR is for writing parsers. You don't need a new custom parser, just use an existing XML parser.

I'm not sure what the best approach would be, but for reading docx you might be better off using something like Apache POI. Docx may be XML, but it's imo absolute abuse of XML. POI shields you a little bit from all the nonsense happening in docx. I could see ANTLR working for Typst since there's probably not another interface for it.

I don't think it'll support it, but you could also check if this can be done with pandoc.

I don't know anything about Typst, but I do know that .docx files are really just a zip file containing a folder structure with a bunch of xml (and a few other) files. I've written a few find/replace docx scripts in bash utilizing this information.