В настоящее время я изучаю лексический анализ в разработке компиляторов.Чтобы узнать, как на самом деле работает лексический анализатор, я пытаюсь создать его самостоятельно.Я планирую построить его на Java.
Входными данными для лексического анализатора является файл .tex следующего формата.
\begin{document}
\chapter{Introduction}
\section{Scope}
Arbitrary text.
\section{Relevance}
Arbitrary text.
\subsection{Advantages}
Arbitrary text.
\subsubsection{In Real life}
\subsection{Disadvantages}
\end{document}
Выходными данными лексера должно быть оглавление, возможно, с номерами страниц в другомфайл.
1. Introduction 1
1.1 Scope 1
1.2 Relevance 2
1.2.1 Advantages 2
1.2.1.1 In Real Life 2
1.2.2 Disadvantages 3
Я надеюсь, что эта проблема в рамках лексического анализа .
Мой лексер прочитал бы файл .tex и проверил бы наличие '\', а при поиске продолжит чтение, чтобы проверить, действительно ли это одна из команд секционирования.Переменная flag установлена для указания типа секционирования.Слово в фигурных скобках, следующее за командой секционирования, читается и записывается с префиксом с числом (например, 1.2.1) в зависимости от типа и глубины.
Я надеюсь, что вышеупомянутый подход будет работать для построения лексера.Как мне добавить номера страниц в оглавление, если это возможно в рамках лексера?