Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

tustep:loesungen:neue_konventionen

Zurück zum Inhaltsverzeichnis - Lösungen und Tipps


Konventionen zum pattern matching

Seit der TUSTEP-Version 2012 gelten neue Konventionen zum pattern matching. Sie sind systematischer aufgebaut, leichter zu merken und zu lesen als die bisher allein gültigen. Darüber hinaus können sie auch problemlos in Prozeduren genutzt werden, die mit XML-Editoren geschrieben werden.

Eine Liste der (neuen vs. alte) Konventionen zum Download finden Sie hier .

Ein #KOPIERE-Script, das in Prozeduren die alten Konventionen in die neuen konvertiert, finden Sie unten.

Zwischen den bisherigen und den neuen Konventionen kann umgeschaltet werden. Die Umschaltung bewirkt auch eine Änderung der Konventionen im Editor!

#parameter,{}     stellt die neuen Konventionen ein (Voreinstellung*)

#parameter,<>     stellt die bisherigen Konventionen ein
                  (!! gleichbedeutend: #parameter,neu !!)

¤ Die Voreinstellung {} gilt für neue Sitzungen, bei denen eine tustep.ini-Datei automatisch eingerichtet wird. In dem betreffenden Fenster ist die Zeile #PARAMETER,{} angekreuzt. Wenn man dies nicht ändert, wird für diese Sitzung #parameter,{} in die Datei tustep.ini geschrieben. In allen anderen Fällen gilt die Voreinstellung <>.

Übersicht:
linke Spalte: Codierung bei #parameter, modus={}
rechte Spalte: Codierung bei #parameter, modus=<>

Vordefinierte Zeichengruppen
{!}    ASCII-Zeichen                                      >%
{;}    TUSTEP-Zeichen außer ASCII-Zeichen
{@}    Zeichen außer Buchstaben und Ziffern               <@
{%}    Zeichen hinter % zur Akzentcodierung               >@
{\a}   Kleinbuchstaben                                    >*
{\A}   Großbuchstaben                                     <*
{&a}   Kleinbuchstaben & Großbuchstaben                   </
{\0}   normale Ziffern
{&0}   normale Ziffern & hochgestellte Ziffern            >/

Zeichen- und Stringgruppen
?      ein beliebiges Zeichen                              <%
*      null bis beliebig viele beliebige Zeichen       ><<><%
[...]  lokale Zeichengruppe, z.B. m[ae][iy]er
{Z:xy} selbstdefinierte Zeichengruppe xy                >[xy]
{C:xy} alternative Schreibweise für {Z:xy}
{S:xy} selbstdefinierte Stringgruppe xy                 <[xy]
       Definition einer Zeichengruppe                 >1z <1z
       Definition einer Stringgruppe                  >1s <1s
       Bezug auf eine Zeichen- oder Stringgruppe        >1 <1
{–}    nachfolgende Zeichen aus der Gruppe entfernen       ><
{+}    nachfolgende Zeichen in die Gruppe aufnehmen        <>

Häufigkeitsbedingungen in Suchzeichenfolgen
{n}    genau n Elemente                                   ><n
{n-m}  n bis m Elemente, möglichst wenige              ><n<>m
{n––m} n bis m Elemente, möglichst viele               <>m><n
{0}    0 oder 1 Element = {0–1}                           ><0
{00}   1 bis unendlich viele Elemente = {1–0}             <>0

Zahlenwertbedingungen in Suchzeichenfolgen
{#}    Zahl mit beliebigem Wert
{#n}   Zahl mit Wert n                                 >={n-n}
{!n}   Zahl mit Wert ungleich n                         <{n-n}
{#n-m} Zahl mit Wert von n bis m                       >={n-m}
{!n-m} Zahl mit Wert kleiner n oder größer m            <{n-m}

Verweise in Suchzeichenfolgen
{+n=}  n-tes Element von links gezählt a != A             >=nn
{-n=}  n-tes Element von rechts gezählt a != A            <=nn
{+n:}  n-tes Element von links gezählt a == A             >:nn
{-n:}  n-tes Element von rechts gezählt a == A            <:nn

Elementbereiche in Suchzeichenfolgen
{|}    Begrenzungszeichen zwischen Elementbereichen

Verweise in Ersatzzeichenfolgen
{+n=}  n-tes Element von links gezählt                    >=nn
{-n=}  n-tes Element von rechts gezählt                   <=nn
{+0=}  alle Elemente der Kernzeichenfolge                 >=00
{–0=}  alle Elemente der Kernzeichenfolge                 <=00
{+n-m=} n-tes bis m-tes Element von li. gezählt        >=(n-m)
{+n–0=} n-tes bis letztes Element von li. gezählt      >=(n–0)
{-n-m=} n-tes bis m-tes Element von re. gezählt        <=(n-m)
{–0-m=} erstes bis m-tes Element von re. gezählt       <=(0-m)
{=n=}   Alle Elemente des n-ten Elementbereichs
{=0=}   Alle Elemente der Kernzeichenfolge
{=n-m=} Alle Elemente des n-ten bis m-ten Elementbereichs
{...+}  ... Kleinbuchstaben ––> Großbuchstaben         >+nn etc.
{...–}  ... Großbuchstaben ––> Kleinbuchstaben         >-nn etc.
{...;}  ... a, b, ..., $, ... ––> ä, ^b, ..., ^$, ...  >:nn etc.
{...!}  ... ä, ^b, ..., ^$, ... ––> a, b, ..., $, ...  >;nn etc.

Einzelzeichen
\?   Fragezeichen                                         ?
\*   Stern                                                *
\[   eckige Klammer auf                                   [
\]   eckige Klammer zu                                    ]
\{   geschweifte Klammer auf                              {
\}   geschweifte Klammer zu                               }
\a   Kleinbuchstabe a                                    >a
\A   Großbuchstabe A                                     <A
\\   Backslash                                            \
<    spitze Klammer auf                                  <<
>    spitze Klammer zu                                   >>

Sonstiges
{[}  linker Rand                                         <|
{]}  rechter Rand                                        >|
{|}  in Sortieralphabet-Tabellen: Umschalten auf ><
     höchste Wertigkeiten

Eingabeerleichterung im Editor

CTRL+K + erstes Zeichen, das in den Klammern vorgesehen ist
                  erleichtert die Eingabe von {...}

CTRL+K + Blank    zeigt eine Übersicht über die nach #pa,{} geltenden Konventionen
                  zum Schreiben der Parameter und der Editor-Anweisungen.

Ausführen "alter" Programme

Will man Programme, deren Parameter noch nach den <>-Konventionen geschrieben wurden, in einer Umgebung verwenden, in der die neuen {}-Konventionen eingestellt sind, oder will man sicherstellen, dass weitergegebene Programme unabhängig von den eingestellten Konventionen des Empfängers laufen, besteht (ab der Version 2013) die Möglichkeit, in den Parametersatz - am besten jeweils gleich nach der Kommandozeile - den Parameter PAR einzufügen:

PAR       <>            Für die Interpretation der folgenden Parameter
                        gilt der Parameter-Modus <>

Dasselbe gilt auch im umgekehrten Fall:

PAR       {}            Für die Interpretation der folgenden Parameter
                        gilt der Parameter-Modus {}

Beispiel:

#rv,datei.tf,-std-,+,+,*
par       {}
ea        |<re>|
ee        |</re>|
ssl       20
*eof

oder:

#rv,datei.tf,-std-,+,+,*
par       <>
ea        |<<re>>|
ee        |<</re>>|
ssl       20
*eof

Prozedur zur Konvertierung alt nach neu

- [ trauth | trauth]

Mit dem folgenden #KOPIERE-Script können in Prozeduren die alten Konventionen in die neuen konvertiert werden.

pm-conv.p [20 KB]


Eine Beschreibung der Prozedur und ihre Voraussetzungen finden sich am Anfang der Datei.


Zurück zum Inhaltsverzeichnis - Lösungen und Tipps

tustep/loesungen/neue_konventionen.txt · Zuletzt geändert: 2021/03/16 05:34 (Externe Bearbeitung)