Hey Loits!
Ich bin gerade dabei einen Evaluator für FIQL zu schreiben und ich stehe derzeit ein bisschen auf dem Schlauch. Die Klammern machen mir Probleme. Ich dachte ich mache mir einen Expression Crawler. Also nehmen wir mal an wir hätten jetzt eine Pseudo-Expression:
Die Variablen hier wären jetzt boolische Werte, ';' ist ein UND und ',' ein ODER.
Jetzt würde ich gerne die Sub-Expression des "tiefsten" Scope auflösen und mich dann hoch arbeiten, bis ich nur noch einen entgültigen Wert habe.
Für das Beispiel würde jetzt also die Funktion "eval(String expression)" mit folgenden Werten und in der Reihenfolge aufgerufen werden. 'E' makiert hier immer das Ergebnis einer Evaluation.
Das ganze bereitet mir ein bisschen Kopfschmerzen, weil ich keine Ahnung habe wie ich da rangehen soll.
Ich bin gerade dabei einen Evaluator für FIQL zu schreiben und ich stehe derzeit ein bisschen auf dem Schlauch. Die Klammern machen mir Probleme. Ich dachte ich mache mir einen Expression Crawler. Also nehmen wir mal an wir hätten jetzt eine Pseudo-Expression:
Code:
x1;((x2,x3);(x4;(x5,x6)))
Jetzt würde ich gerne die Sub-Expression des "tiefsten" Scope auflösen und mich dann hoch arbeiten, bis ich nur noch einen entgültigen Wert habe.
Für das Beispiel würde jetzt also die Funktion "eval(String expression)" mit folgenden Werten und in der Reihenfolge aufgerufen werden. 'E' makiert hier immer das Ergebnis einer Evaluation.
Code:
1 x5,x6
2 x4;E1
3 x2,x3
4 E2;E3
5 x1;E4
Das ganze bereitet mir ein bisschen Kopfschmerzen, weil ich keine Ahnung habe wie ich da rangehen soll.