Ответ 1
Вы можете взглянуть на библиотеку Pandoc на Hackage для анализа Latex. Это позволит вам анализировать, модифицировать и красиво печатать латекс, а также множество других форматов.
Пример проблемы: я хочу написать Haskell script, который выделит (например, с \fbox
) первое вхождение математических символов в документе. Надеюсь, это поможет мне обеспечить, чтобы я представил все.
Regex неуместны, поскольку они не будут знать, что в математическом режиме и т.д., и не имеют логики для подсчета вещей или знают, что переменная из следующего \section
на самом деле является новой переменная.
Я также не хочу писать парсер для всех LaTeX. Вероятно, вероятность ошибок высока, и я просто хочу написать script, а не коммерческую программу.
Я написал смешанный синтаксический анализатор, который получил некоторую структуру и оставил в качестве текста текст в ответ на вопрос здесь. [Как вы используете парсер жадным способом?. Но мой подход был громоздким. Есть ли лучший, более формальный способ?
Вы можете взглянуть на библиотеку Pandoc на Hackage для анализа Latex. Это позволит вам анализировать, модифицировать и красиво печатать латекс, а также множество других форматов.