disclaimer требования к заданию описаны не полностью и должны уточняться по ходу работы (git pull request, комментарии к коммитам, тестам и т.п.)
40 баллов
LaTeX - продвинутая система компьютерной верстки текста, основанная на TeX
Задача
- Реализовать парсер ограниченного подмножества языка (набора команд) LaTeX
- Реализовать визитор по синтаксическому дереву, который бы выводил исходный документ в формате Markdown (том же, на котором написана эта вики)
Набросок грамматики языка:
document -> documentclass title author date document_body documentclass -> article | paper document_body -> maketitle text | text text ->
Пример:
\documentclass{article}
\title{Cartesian closed categories and the price of eggs}
\author{Jane Doe}
\date{September 1994}
\begin{document}
\maketitle
\it{Hello} \textbf{world}!
\end{document}
это нужно преобразовать в:
# Cartesian closed categories and the price of eggs #
by Jane Doe
September 1994
***
_Hello_ **world**!
что превращается в:
Cartesian closed categories and the price of eggs
by Jane Doe
September 1994
Hello world!