Parser

Generell sind Struktogramme syntaxfrei konzipiert. Wenn Sie jedoch von den erweiterten Funktionen von Structorizer profitieren möchten (z. B. Test-Ausführung, Code-Export, Code-Import usw.), müssen Sie Structorizer erlauben, bestimmte Details der algorithmischen Strukturen zu klassifizieren oder zu identifizieren. Dazu benötigt es bestimmte Schlüsselwörter in den Elementtexten. Zum Beispiel hängt die korrekte Erkennung und semantische Unterscheidung von FOR-Schleifen von solchen Schlüsselwörtern ab. Dies gilt auch für die Identifizierung von Ein- und Ausgabeanweisungen und EXIT-Elementen sowie für die korrekte Extraktion von Bedingungen in Schleifenköpfen im Allgemeinen.
Sie können diese Schlüsselwörter jedoch frei nach Ihren eigenen Vorlieben und Bedürfnissen festlegen (anpassen). Dafür sind die Parser-Präferenzen gedacht.
Über den Menüpfad „Preferences › Parser..." (Präferenzen › Parser...) können Sie das Formular für Parser-Präferenzen öffnen. Ab Version 3.29-04 zeigt es durch eine unterschiedliche Feldhintergrundfarbe, welche der Schlüsselwörter vernachlässigbar und welche für eine korrekte Elementanalyse obligatorisch sind:

Für die meisten Steuerstrukturen können Sie ein führendes „Pre"- und ein nachgestelltes „Post"-Schlüsselwort definieren, wobei „Pre" und „Post" auf den charakteristischen Textinhalt verweist, den Sie im Elementeditor beim Einfügen eines Elements dieses Typs eingeben sollen (z. B. die Bedingung einer Alternative oder Schleife). So weiß Structorizer, welches Präfix und Postfix ignoriert werden kann, um den eigentlichen logischen Ausdruck zu extrahieren. Einige Steuerstrukturen wie FOR-Schleifen und EXIT-Anweisungen benötigen jedoch mehr Schlüsselwörter, um mehrere Ausdrücke im Elementtext zu trennen oder die bezeichnete Aktion des Elements zu klassifizieren. Je nach verwendetem Modul werden diese Schlüsselwörter herausgefiltert, ersetzt oder zum Aufteilen des Textes verwendet.
Seit Version 3.30-07 gibt es einen weiteren möglichen Einfluss der „Pre"- und „Post"-Schlüsselwörter für IF- und CASE-Anweisungen sowie WHILE- und REPEAT-Schleifen beim Code-Import: Wenn die Importpräferenz „Place configured optional keywords around conditions" (Konfigurierte optionale Schlüsselwörter um Bedingungen platzieren) aktiv ist, wird der importierte Bedingungsausdruck von den nicht-leeren „Pre"- und „Post"-Schlüsselwörtern im Textfeld des abgeleiteten Elements eingeschlossen.
Das Kontrollkästchen „Ignore case" (Groß-/Kleinschreibung ignorieren) steuert, ob die hier konfigurierten Parser-Schlüsselwörter groß-/kleinschreibungsabhängig oder -unabhängig (tolerant) abgeglichen werden sollen. Letzteres ist die Standardeinstellung, z. B. würde es keinen Unterschied machen, ob Sie „INPUT", „input" oder „Input" (oder sogar „iNpUt") in Ihren Diagrammen schreiben; Structorizer würde es erkennen, solange die Option „Ignore case" aktiv ist. Beachten Sie jedoch, dass diese Groß-/Kleinschreibungstoleranz nur für die hier konfigurierten Schlüsselwörter gilt, nicht für Variablennamen.
Die wichtigsten Funktionen und Module, die die Parser-Präferenzen konsultieren können, sind:
- Variablen-Hervorhebung,
- Diagramm-Analyser,
- Quellcode-Generierung,
- Diagramm-Ausführung,
- Turtleizer-Modul,
- FOR-Schleifen-Editor,
- Quellcode-Import,
- Element-Transmutation.
Wenn Sie keine davon verwenden möchten oder mit dem vorkonfigurierten Satz von Schlüsselwörtern zufrieden sind, müssen Sie die Parser-Präferenzen nicht anpassen.
In den meisten Fällen möchten Sie jedoch, dass Ein- und Ausgabeanweisungen erkannt werden, FOR-Schleifen korrekt interpretiert werden usw. In diesem Fall müssen Sie entweder beim Schreiben von Diagrammen die konfigurierten Parser-Präferenzen einhalten oder die Parser-Präferenzen an die im Diagramm verwendeten Schlüsselwörter anpassen.
Die Parser-Präferenzen sind vollständig unabhängig von der aktuellen Dialogsprache (vgl. „Preferences > Language"), aber seit Version 3.29-05 können Sie über das Popup-Menü der Schaltfläche „Fetch locale-specific defaults" (Sprachspezifische Standards laden) lokalisierte Schlüsselwortsätze für einige der verfügbaren Sprachen laden:

(Die lokalisierten Schlüsselwortsätze sind in den Ressource-Locales gespeichert, die mit dem Werkzeug Translator konfiguriert werden können.)
Nach Auswahl des Menüpunkts „French" (Französisch) könnten die Textfeldinhalte wie folgt aussehen:

Wenn Sie den ausgewählten lokalisierten Schlüsselwortsatz nicht übernehmen möchten, können Sie einen anderen auswählen oder den Dialog einfach verlassen, ohne zu bestätigen (über das Schließen-Steuerelement des Fensters oder durch Drücken der <Esc>-Taste).
Aber was passiert nun mit einem „arbeitenden" Diagramm in Structorizer, wenn Sie einige der Parser-Schlüsselwörter ändern (und die Änderungen bestätigen)? Würde es nicht „veralten" und seine Interpretierbarkeit verlieren? Glücklicherweise nicht! Structorizer bietet hilfreich einen praktischen Service an: Refactoring von Parser-Schlüsselwörtern in Diagrammen. Wenn Sie Änderungen an einem oder mehreren Schlüsselwörtern in diesem Dialog bestätigen und das aktuell bearbeitete Diagramm nicht leer ist oder Diagramme im Arranger geparkt sind, werden Sie gefragt, ob:
- kein Diagramm,
- das aktuell bearbeitete Diagramm, oder
- alle offenen Diagramme (d. h. einschließlich der in einem angehängten Arranger geparkten)
automatisch an die neuen Parser-Präferenzen angepasst werden sollen – soweit sie den vorherigen entsprachen. Auf diese Weise können Sie einen gesamten Diagrammsatz refaktorieren, um z. B. französische Schlüsselwörter wie „pour", „à" und „, pas = " in FOR-Schleifen anstelle der englischen Schlüsselwörter zu verwenden:


Die durch Drücken der Schaltfläche „OK" ausgelöste Übersetzung der Diagramme ist für jedes betroffene Diagramm einzeln rückgängig zu machen.
Beim Laden von Diagrammen, die in einem Kontext mit abweichenden Schlüsselwörtern erstellt wurden, kann ein ähnliches Problem auftreten. Ebenso beim Laden archivierter Präferenzen. Structorizer ist jedoch darauf vorbereitet: Siehe Importoptionen und Präferenzen laden für die zugehörigen Aspekte des Diagramm-Refactorings.
Hinweise:
- Obwohl Parser-Einstellungen technisch unabhängig von den „Structures"-Präferenzen sind, ist es natürlich sinnvoll, z. B. das „Pre"-Bedingungs-Schlüsselwort einer REPEAT-Schleife als „until" zu konfigurieren, wenn Sie den Standardtext für die Repeat-Schleife z. B. als „until BEDINGUNG" oder „until ?" in den „Structures"-Präferenzen angegeben haben. Bei FOR- und FOR-IN-Schleifen hingegen wird der Standardausdruck in den „Structures"-Präferenzen vom Elementeditor anhand der hier konfigurierten „Pre"- und „Post"-Schlüsselwörter aufgeteilt, um den Stil und die Parameter der Schleife zu bestimmen. Daher wird Ihnen in der Regel automatisch angeboten, die Struktur-Präferenzen konsistent anzupassen, wenn Sie die Parser-Präferenzen geändert haben (aber nicht umgekehrt).
- Das „Pre"-Schlüsselwort der FOR-IN-Schleife muss sich nicht vom „Pre"-Schlüsselwort der FOR-Schleife unterscheiden. Das „Post"-Schlüsselwort der FOR-IN-Schleife darf jedoch keinem anderen Schlüsselwort der Parser-Präferenzen gleich sein (um sicherzustellen, dass Structorizer eine FOR-IN-Schleife von einer FOR-Schleife unterscheiden kann, falls beide „Pre"-Schlüsselwörter gleich sind).
- Die Schlüsselwörter für die EXIT-Anweisung und für Ein- und Ausgabeanweisungen müssen sich gegenseitig unterscheiden.
- Keines der Schlüsselwörter darf einen Doppelpunkt (':') enthalten.
- Die im obigen Screenshot cremefarbig markierten Schlüsselwortfelder geben obligatorische Schlüsselwörter an und dürfen nicht leer sein. Ab Version 3.29-04 werden Sie daran gehindert, unvollständige Daten zu bestätigen.
- Die lokalisierten Schlüsselwortsätze sind in den Locale-Ressourcen von Structorizer konfiguriert. Das Werkzeug Translator kann verwendet werden, um diese zu konfigurieren (die resultierende Sprachdatei muss jedoch für die Produktintegration eingesendet werden).
