WHILE...END |
Top Previous Next |
Skripte > Produktionen > WHILE...END
Ebenso wie bei der IF-Struktur wird bei der WHILE...END Struktur durch einen boolschen Ausdruck entschieden, ob eine Verweigung ausgeführt wird.
Genauer hat diese Struktur die Form:
WHILE( boolscher Ausdruck ) While-Zweig END
Der While-Zweig ist beliebige Verkettung oder Gruppierung von Token und semantischen Aktionen.
Der boolscher Ausdruck ist immer zugleich interpretierbar und exportierbar.
Beispiel
NUMBER {{ int i = 0, iCount = xState.itg(); }} WHILE(i < iCount) ReadData {{ i++; }} END
Zunächst wird die Anzahl der nachfolgenden Datensätze gelesen und dann mit ReadData die Datensätze selbst.
Beispiel:
EmptyBracket ::= "[" "]" NonEmptyBracket ::= "[" IDENT "]"
WHILE ( EmptyBracket() ) EmptyBracket {{ iEmptyBracketsCount++; }} END NonEmptyBracket
Die Produktion EmptyBracket wird hier zugleich zum Parsen und zur Vorausschau verwendet. Die leeren Klammern bis zur ersten nicht leeren Klammer werden gezählt.
|
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |