私は現在、コンパイラー設計で字句解析を学んでいます。字句解析器が実際にどのように機能するかを学ぶために、私は自分で字句解析器を構築しようとしています。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ファイルを読み取り、「\」をチェックし、検索を続行すると、それが実際にセクショニングコマンドの1つであるかどうかをチェックします。セクショニングのタイプを示すためにフラグ変数が設定されます。セクショニングコマンドに続く中括弧内の単語は、タイプと深さに応じて、接頭辞付きの数字(1.2.1など)に沿って読み書きされます。
上記のアプローチがレクサーの構築に役立つことを願っています。レクサーの範囲内で可能であれば、目次にページ番号を追加するにはどうすればよいですか?