Class IterationsAnweisung
- java.lang.Object
-
- de.bsvrz.ibv.uda.interpreter.anweisung.AbstractAnweisung
-
- de.bsvrz.ibv.uda.interpreter.anweisung.iteration.IterationsAnweisung
-
- All Implemented Interfaces:
Anweisung
,de.bsvrz.sys.funclib.bitctrl.interpreter.Ausdruck
public class IterationsAnweisung extends AbstractAnweisung
die Repräsentation einer Iterationsanweisung innerhalb eines Uda-Skripts.
Eine Iterationsanweisung enthält eine Iterationsbedingung und einen Anweisungsblock. Der Anweisungsblock wird solange ausgeführt, bis die Bedingung nicht mehr gültig ist.
Uda unterstützt folgende Iterationen:- Iteration per Laufvariable über eine Menge
- Iteration mit einer Bedingung (entspricht einer WHILE-Schleife)
- Iteration mit numerischen Laufvariable (entspricht einer FOR-Schleife mit ganzzahligem Laufindex)
-
-
Constructor Summary
Constructors Constructor Description IterationsAnweisung(int zeile, java.lang.String skript, IterationsBedingung bedingung, AnweisungsBlock anweisungen)
Konstruktor.
-
Method Summary
Modifier and Type Method Description java.util.List<de.bsvrz.sys.funclib.bitctrl.interpreter.Ausdruck>
getNachfolger()
.java.lang.Object
interpret(de.bsvrz.sys.funclib.bitctrl.interpreter.Kontext kontext)
.
Die Funktion erzeugt einen lokalen Kontext, in den alle Variablen des übergebenden Kontextes übernommen werden, um ein überschreiben einer Variable des umgebenden Kontextes durch eine Laufvariable zu vermeiden.-
Methods inherited from class de.bsvrz.ibv.uda.interpreter.anweisung.AbstractAnweisung
erzeugeAnweisungsFehler, getSkript, getZeile
-
-
-
-
Constructor Detail
-
IterationsAnweisung
public IterationsAnweisung(int zeile, java.lang.String skript, IterationsBedingung bedingung, AnweisungsBlock anweisungen)
Konstruktor.- Parameters:
zeile
- die Nummer der Zeile, in der die Anweisung definiert istskript
- der name des Skriptsbedingung
- die Bedingung unter der die Anweisungen ausgeführt werdenanweisungen
- die auszuführenden Anweisungen
-
-
Method Detail
-
getNachfolger
public java.util.List<de.bsvrz.sys.funclib.bitctrl.interpreter.Ausdruck> getNachfolger()
.- See Also:
Ausdruck.getNachfolger()
-
interpret
public final java.lang.Object interpret(de.bsvrz.sys.funclib.bitctrl.interpreter.Kontext kontext)
.
Die Funktion erzeugt einen lokalen Kontext, in den alle Variablen des übergebenden Kontextes übernommen werden, um ein überschreiben einer Variable des umgebenden Kontextes durch eine Laufvariable zu vermeiden. Die Bedingung wird geprüft, wenn diese den Wahrheitswert "wahr" liefert, wird der Anweisungsblock ausgeführt. Dies wird solange wiederholt bis die Bedingung nicht mehr gültig ist.
Tritt bei der Auswertung der Bedingung oder der Ausführung des Anweisungsblockes ein unbehandelter Fehler auf, wird die Ausführung der Iteration ebenfalls unterbrochen und die Ausnahme weitergereicht. Am Ende der Ausführung der Anweisung werden alle Daten, bis auf die Daten der Laufvariable in den umgebenden Kontext zurückübertragen.
Die Anweisung liefert immer den Wert undefiniert zurück.- See Also:
Ausdruck.interpret(de.bsvrz.sys.funclib.bitctrl.interpreter.Kontext)
-
-