Разбор латексоподобного языка в Java

Я пытаюсь написать синтаксический анализатор на Java для простого языка, похожего на Latex, то есть он содержит много неструктурированного текста с парой команд \ с [некоторыми] {параметрами} между ними. Последовательности Escape, такие как \\, также должны быть приняты во внимание.

Я пытался сгенерировать парсер для этого с помощью JavaCC, но похоже, что компиляторы компиляторов, такие как JavaCC, подходят только для высокоструктурированного кода (типично для языков программирования общего назначения), а не для грязной латексоподобной разметки. Пока что, похоже, мне нужно перейти на низкий уровень и написать свой собственный конечный автомат.

Поэтому мой вопрос заключается в том, как проще всего анализировать ввод, который в основном неструктурирован, с промежуточными командами, похожими на латекс?

РЕДАКТИРОВАТЬ: Переход на низком уровне с конечным автоматом трудно, потому что латексные команды могут быть вложенными, например, \ Cmd1 {\ cmd2 {\ Cmd3 {...}}}

Ответы на вопрос(1)

Ваш ответ на вопрос