Import |
Top Previous Next |
Bedienung > Verwalten und Parsen > Import
Über die Importfunktion können Skriptlisten importiert werden, die zuvor aus TETRA exportiert wurden.
Je nach Art des Skripts haben diese Dateien ein unterschiedliches Format und sind durch unterschiedliche Dateierweiterungen gekennzeichnet:
Es wird nicht überprüft, ob die importierten Token, Produktionen usw. der korrekten TETRA-Syntax gehorchen. Im Gegenteil: die Syntax für den Import ist möglichst tolerant gestaltet. Die meisten Syntaxelemente sind optional. So wird der Import von Grammatiken erleichtert, die mit anderen Parsergeneratoren verfasst wurden. Exakte Konvertierungsprogramme für derartige Grammatiken zu schreiben ist ein unverhältnismäßig großer Aufwand. Die Möglichkeiten der IDE vereinfachen die Anpassung an die TETRA-Syntax enorm.
Falls bereits ein Projekt im TextTransformer geöffnet ist besteht beim Import die Auswahl, ein neues Projekt zu erstellen oder die importierten Skripte in das bereits bestehende Projekt mit einzufügen.
Das Kästchen "Optionen überschreiben" bestimmt, ob die Projektoptionen aus der Import-Datei übernommen werden, oder nicht. Wenn das Häkchen gesetzt ist, werden die aktuellen Projektoptionen auch dann überschrieben, wenn in der Import-Datei keine Optionen angegeben sind. Es werden dann die Default-Optionen gesetzt.
Wenn die Option "Gleichnamige Skripte überschreiben" nicht aktiviert ist, so werden alle diejenigen Skripte der Verwaltung zugefügt, deren Namen von den Namen der bereits vorhandenen Skripte unterschieden ist. Skripte gleichen Namens werden beim Import dann nicht überschrieben.
Das Import-Format für ein gesamtes Projekt hat die Struktur:
ImExport ::= "TextTransformer" ProjectOptions
( Tokens | Productions | Members | Tests )*
Die Formate für den Export der Token, Produktionen, Interpreter-Skripte und der Tests ist identisch mit dem der jeweiligen Produktionen des Gesamt-Formats.
Tokens ::= "TOKENS" Token* Productions ::= "PRODUCTIONS" Production* Members ::= "MEMBERS" Member* Tests ::= "TESTS" Test*
Die Details können dem beigefügten ImExport-Projekt entnommen werden. Als exemplarisches Beispiel sei hier noch die Struktur einer Produktion angeührt:
Production ::= Comment? IDENT Params? ReturnType? "::=" LocalOptions? Field
Beispiel:
/* */ Text( ) : void [LocalOptions] CaseSensitive=1 CommentToCode=0 CreateInterface=0 Exportable=1 GlobalLiteralScanner=1 GlobalRegexScanner=0 IgnoreChars=IGNORE IgnoreWhiteSpace=1 InclusionProd= Interpretable=1 IsNullableWarning=1 Separated=1 StartSuccNullableWarning=1 TestAllLiterals=0 UseIgnoreRegex=1 UseLocalOptions=1
(> "(>" ( SKIP | STRING )* "<)" <)
Die Definition einer Produktion beginnt mit ihrem Namen, auf den dann optional in Klammern gesetzte Parameter folgen und wiederum optional ein Rückgabewert hinter einem Doppelpunkt. Der Text der Produktion wird in die Klammern "(>" und "<)" eingeschlossen. (Diese Zeichen sind so gewählt, dass sie innerhalb des Textes nicht auftauchen dürften.) Die Syntax für die anderen Skripte ist analog, wobei die Anzahl der folgenden Texte gleich der Anzahl der jeweiligen Eingabefelder im TextTransformer ist.
Auch die Angabe der Optionen ist optional. Für nicht genannte Optionen wird der jeweilige Default-Wert gesetzt.
|
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |