Hauptnavigation

Verarbeitung der Paragraphen next up previous contents
Weiter: Klassifikation Hoch: Parser und Tokenizer Zurück: Datenbereinigung


Verarbeitung der Paragraphen

Eine zentrale Aufgabe, das Dokument in Paragraphen zu zerlegen, ?bernimmt die Klasse Parser.java. Der Parser fordert vom Tokenizer einzelne Tokens an und speichert sie in einem Objekt der Klasse Paragraph.java. Findet der Parser das Token \par bedeutet dies, dass nun ein neuer Paragraph beginnt und ein neues Paragraph-Objekt angelegt werden muss. Die einzelnen Paragraphen-Objekte werden in einem Vektor gespeichert. Dieser wird dann bei der Datenbereinigung30 und bei der im Abschnitt 8.2 erl?uterten Klassifikation genutzt.

Abbildung 8.3 zeigt ein UML-Diagramm der Klasse Paragraph.java

\begin{figure} % latex2html id marker 3824 \centering\epsfig{file=bilder/UML_Pa... ...\tt Paragraph.java}] {UML Diagramme der Klasse {\tt Paragraph.java}}\end{figure}

Wie speichert der Parser die vom Tokenizer erzeugten Tokens in einem Paragraph-Objekt? Die RTF-Syntax bietet die M?glichkeit Gruppen zu bilden. Definitionen die innerhalb einer Gruppe gemacht wurden, haben auch nur innerhalb dieser und ihren Untergruppen G?ltigkeit. Es ist also wichtig, dass der Parser nicht einfach zwischen Kontrollw?rtern und Textelementen unterscheidet, sondern es muss gleichzeitig die Klammerstruktur beachtet werden. Nur dann kann auch festgestellt werden, welches Kontrollwort wie viele Zeichen innerhalb eines Paragraphen beeinflusst.

Bei nicht eingeschalteter Datenbereinigung werden alle Kontrollw?rter des Paragraphen in einer Hashtabelle gespeichert. Dabei bildet ein Kontrollwort jeweils einen Schl?ssel und die Anzahl der Zeichen, die vom Kontrollwort beeinflusst werden, wird als zugeh?riger Wert gespeichert. Ist die Datenbereinigung aktiviert, wird f?r jedes Kontrollwort ?berpr?ft, ob es sich in der Menge der irrelevanter Kontrollw?rter (siehe 8.1.4) befindet. Ist das nicht der Fall, so wird das Kontrollwort in der Hashtabelle gespeichert, andernfalls wird es verworfen.

Die komplette Hashtabelle und ein String, der dem Text des Paragraphen entspricht, wird letztlich im Paragraph-Objekt gespeichert.

Der Vollst?ndigkeit halber sollte erw?hnt werden, dass Gruppen, die Destinations enthalten, durch den Parser ?bersprungen werden. Fu?notentext oder Eintr?ge im Inhaltsverzeichnis eines Dokumentes werden demzufolge nicht betrachtet.


next up previous contents
Weiter: Klassifikation Hoch: Parser und Tokenizer Zurück: Datenbereinigung
Christian H?ppe, christian.hueppe@web.de