Я пытаюсь написать синтаксический анализатор на Java для простого языка, похожего на Latex, то есть он содержит много неструктурированного текста с парой \ команд [с] {некоторыми} {параметрами} между ними.Необходимо также учитывать escape-последовательности, такие как \\.
Я пытался сгенерировать для этого парсер с JavaCC, но похоже, что компиляторы компиляторов, такие как JavaCC, подходят только для высокоструктурированного кода (типично для языков программирования общего назначения), а не для грязной латексоподобной разметки.Пока что мне кажется, что мне нужно перейти на низкий уровень и написать свой собственный конечный автомат.
Итак, мой вопрос, какой самый простой способ для анализа ввода, который в основном неструктурирован, с помощью всего лишь нескольких латексоподобных командмежду?
РЕДАКТИРОВАТЬ: Переход на низкий уровень с конечным автоматом затруднен, потому что латексные команды могут быть вложенными, например, \ cmd1 {\ cmd2 {\ cmd3 {...}}}