Hallo,
wie schonmal beschrieben, baue ich gerade an einer Art Interpreter für java-ähnlichen Code (den ich zur Visualisierung von Sortieralgorithmen benutze).
Ich komme einigermassen gut voran, habe aber gerade Probleme mit dem abrupten Aussteigen aus einer Funktion oder Schleife durch break, continue, return.
Wie kann man sowas nachbauen?
Im Wesentlichen sieht es so aus, dass ich einen riesigen Syntaxbaum habe, den ich rekursiv durchlaufe…
nur ich kapiere gerade nicht, wie ich wenn ich auf einmal in einer Folge von Statements auf ein return stosse, dann die Kontrolle an den entsprechenden punkt zurückgeben kann und dies kann eben 3-4 Funktionen früher im Callstack gewesen sein, z.b. bei einem return sieht der Code z.b. so aus
funktionsname()
{
if (bla) return;
}
dann habe ich in meinem Baum etwa drei Objekte von diesen Typen
Funktion
|-If
|- Return
und so einen Callstack:
- Return.execute()
- If.execute()
- Function.execute()
nun muss ich irgendwie von 3 nach 1 springen ohne dass 2 weitere Dinge ausführt…
ich hoffe es wurde irgendwie klar 
Gruß
Bruno
