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