我目前正在学习编译器设计中的词法分析。为了了解词法分析器的工作原理,我正在尝试自己构建一个。我打算用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.2.1)被读取和写入。
我希望上述方法适用于构建词法分析器。如果在词法分析器的范围内可能的话,我该如何在目录中添加页码?