From 537ac8a2ecb64a141ec8ffc1ab053e84154c4f09 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Tue, 4 Jun 2019 11:11:57 +0200 Subject: Cleanup --- implementation.tex | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'implementation.tex') diff --git a/implementation.tex b/implementation.tex index f5e5e58..3a68e04 100644 --- a/implementation.tex +++ b/implementation.tex @@ -22,7 +22,7 @@ Die Module innerhalb von \texttt{edit-lens} entsprechen im wesentlichen den Sekt \item[Control.DFST] Datentyp, schrittweise-, und vollständige Auswertung sowie Umwandlung zu einem FST für deterministische finite state transducer \item[Control.Lens.Edit.ActionTree] - Das beschriebene Verfahren zur Darstellung eines beliebigen DFST als edit-lens für jene edit-Sprache + Das beschriebene Verfahren zur Darstellung eines beliebigen DFST als edit-lens für die edit-Sprache aus \textbf{Control.Edit.String} Es ist hierbei jedoch der konkrete Typ der Wirkung und das Suchschema für $\Lleftarrow$ als Typklasse abstrahiert \item[Control.DFST.Lens] @@ -53,13 +53,15 @@ Die Module innerhalb von \texttt{edit-lens} entsprechen im wesentlichen den Sekt Der interaktive editor kann von der Befehlseingabe gestartet werden wie folgt: \begin{lstlisting}[language=bash] $ stack build - $ stack exec interact \end{lstlisting} Hierbei ist \texttt{} einer der in \texttt{Main} implementierten DFSTs: \begin{description} \item[linebreak] - Wandelt Zeilenumbrüche und Leerzeichen ineinander um, sodass alle Zeilen mindestens 80 Zeichen enthalten + Wandelt Zeilenumbrüche und Leerzeichen ineinander um, sodass alle Zeilen mindestens 80 Zeichen enthalten (Beispiel \ref{eg:linebreak}) +\item[switch] + Der einfache DFST aus Abbildung \ref{fig:switchdfst} \item[json-newl] Normalisiert Whitespace in einem JSON\footnote{\url{https://de.wikipedia.org/wiki/JSON}}-String. JSON ist nicht regulär; Es lassen sich Klammern nicht prüfen und Einrückung nicht in Abhängigkeit der Verschachtelung implementieren @@ -85,5 +87,5 @@ Nach Auswahl wird der Inhalt der Datei am Cursor eingefügt. \subsubsection{Performance} Bei der Implementierung wurde nicht auf Performance geachtet. -Es ist daher die Laufzeit des interaktiven Editors bereits bei kleinen Eingabe inakzeptabel lang (mehrere Sekunden für ein Kilobyte JSON). +Es ist daher die Laufzeit des interaktiven Editors bereits bei kleinen Eingaben inakzeptabel lang (mehrere Sekunden für ein Kilobyte JSON). Es lässt sich allerdings der Speedup beim Propagieren kleiner edits gut beobachten; die Propagation eines ein-Buchstaben-edits nach rechts ist ca. einen Faktor 200 schneller als das komplett neue Parsen einer Datei (ca. ein Kilobyte JSON). -- cgit v1.2.3