Lokale Optionen |
Top Previous Next |
Bedienung > Hauptmenü > Menü: Einstellungen > Lokale Optionen > Lokale Optionen
Die Projekteinstellungen, die zunächst für alle Regeln gelten, können für einzelne Produktionen überschrieben werden. Der Menüeintrag für die lokalen Optionen befindet sich im Hauptmenü: Projekt, das nur auf der Produktionenseite sichtbar ist. Die lokalen Einstellungen einer Produktion wirken sich nicht auf die Arbeitsweise der in ihr aufgerufenen Produktionen aus.
Bevor die einzelnen Optionen eingestellt werden können, müssen die lokalen Optionen auf der ersten Tabellenseite aktiviert werden. Sind für eine Produktion lokale Optionen aktiv, die die globalen Projektoptionen überschreiben (i.U. zu rein lokalen Optionen), so wird ihr Knoten (nach Kompilierung) mit einem roten Häkchen versehen.
Die Option zur Verwendung globaler Scanner ist hier eingeschränkt:
Globaler Scanner für Literale, falls möglich Globaler Scanner für Regexe, falls möglich
Die Aktivierung globaler Scanner in den lokalen Optionen wird nur wirksam, wenn die Groß-/Kleinschreibung-Option in den lokalen und globalen Optionen gleich gesetzt sind. Eine lokale Deaktivierung der globalen Scanner ist immer möglich.
Werden Optionen für den Scanner lokal verändert, so wirkt sich diese Änderung aus, sobald innerhalb der Produktion ein neues Token ermittelt wird. Dies geschieht sobald ein Token in der Produktion akzeptiert wird oder, wenn das letzte Token einer in der Produktion aufgerufenen Produktion akzeptiert wird. Im letzten Fall wird in der aufrufenden Produktion der Nachfolger der aufgerufenen Produktion ermittelt.
Beispiel:
Prod1 ::= Prod2 "c" Prod2 ::= "a" "b"
Wenn in Prod1 lokal das Leerzeichen als auszulassen gesetzt sind, nicht aber in Prod2 und in beiden Produktionen die Worttrennung deaktiviert ist, so wird die erste Reihe von Texten korrekt geparst, der zweite wird nicht geparst. Ob der dritte Text geparst wird hängt von der vorhergehenden Produktion ab.
1: "ab c", "abc" abc ", ab c " 2: "a bc" 3. " abc"
Anmerkung: Die ausgelassenden Zeichen werden über alle Tests akkumuliert.Wenn in der aktuellen Produktion kein Nachfolger für ein Token gefunden wird, wird der Nachfolger der Produktion selbst gesucht. Diese Suche startet dann nach den bereits ausgelassenen Zeichen.
Neben den in den Projektoptionen beschrieben Punkten gibt es eine zusätzliche Option:
Interfacemethode erzeugen
Diese Option lässt sich direkt in einer Checkbox in der Werkzeugleiste der Produktionen-Seite einstellen.
Ist diese Option aktiviert, so wird für die Produktion ein gesonderter Scanner erzeugt, der die Menge der Token umfasst, mit denen die Regel beginnen kann. Sind mehrere Produktionen kompiliert, für die die Interfaces erzeugt wurden, so kann zwischen ihnen während der Transformation eines Textes interaktiv gewechselt werden. Die Interface-Scanner testen dann unmittelbar nach einem solchen Wechsel, ob der jeweils aktuelle Text zu der neu gesetzten Startregel passt.
Anmerkung: Werden die Produktionen mit Alle Skripte parsen kompiliert, hat dies den Effekt, als sei die Option zum Erzeugen eines Interfaces für alle Produktionen gesetzt. Automatisch wird für jede Produktion ein Scanner erzeugt, der das erste Token eines gewählten Textabschnitts testen kann, so dass zwischen sämtlichen Produktionen ein interaktiver Wechsel möglich ist.
Im Normalfall wird ein Parser über ein Interface zu seiner Startregel aufgerufen. Wenn eine entsprechende Interfacemethode erzeugt wird, ist es aber auch möglich andere Regeln direkt aufzurufen. So werden z.B. im TextTransformer die Texte für die Parameter einer Produktion mit einer Unterregel des Produktionen-Parsers in die interpretierbaren und exportierbaren Teile zerlegt. Um die Unterregel direkt aufrufen zu können, musste für sie ein Interface erzeugt werden. |
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |