Je suis en train d'apprendre l'analyse lexicale dans la conception de compilateurs. Afin d'apprendre comment fonctionne vraiment un analyseur lexical, j'essaie d'en construire un moi-même. Je prévois de le construire en Java.Construction d'un analyseur lexical en Java
L'entrée de l'analyseur lexical est un fichier .tex de format suivant.
\begin{document}
\chapter{Introduction}
\section{Scope}
Arbitrary text.
\section{Relevance}
Arbitrary text.
\subsection{Advantages}
Arbitrary text.
\subsubsection{In Real life}
\subsection{Disadvantages}
\end{document}
La sortie du lexer doit être une table des matières éventuellement avec des numéros de page dans un autre fichier.
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
J'espère que ce problème est dans le cadre de l'analyse lexicale. Ma lexer lirait le fichier .tex et verifierait '\' et trouverait continue la lecture pour verifier si c'est bien l'une des commandes de sectionnement. Une variable d'indicateur est définie pour indiquer le type de sectionnement. Le mot entre accolades suivant la commande de coupe est lu et écrit avec le préfixe précédé d'un nombre (comme 1.2.1) en fonction du type et de la profondeur.
J'espère que l'approche ci-dessus fonctionnerait pour construire le lexer. Comment faire pour ajouter des numéros de page à la table des matières si cela est possible dans le cadre de la lexer?
Cela ne devrait-il pas être «1.2.1.1 dans la vraie vie» au lieu de «1.2.1 dans la vraie vie»? –
Merci. J'ai fait la correction. – primpap