Hallo, ich beschäftige mich gerade damit, einen simplen (so dachte ich) Parser für Funktionen mit Argumenten zu erstellen.
Jede Funktion hat dabei n Argumente, getrennt durch ";". Das Zeichen kann natürlich aber auch in Texten vorkommen oder in Unterfunktionen.
Mein Ansatz war, den übergebenen Strign erst mal zu splitten und die Bruchstücke dann nach Bedarf wieder zusammenzusetzen. Das ist aber wahrscheinlich wohl komplett der falsche Weg.
Die zweite Idee wäre, mit RegEx zu arbeiten, aber damit kenn ich mich mal so richtig überhaupt nicht aus.
Als Beispiel hier mal der 1:1 eingelesene Text (ohne Java Escape Zeichen), F2 würde also also das Wort "Welt" in Anführungszeichen sehen.
Gibt es eine Möglichkeit, das mit Regex in folgende Komponenten zu zerlegen?
F1 und umschließende Klammern dürfen im zerlegten Content natürlich auch mit drin sein, die kann ich gegebenenfalls auch vorher weglöschen.
Der Regex sollte also im Grunde erkennen, ob es sich um eine Unterfunktion oder Text handelt und an der Stelle nicht zerlegen
Jede Funktion hat dabei n Argumente, getrennt durch ";". Das Zeichen kann natürlich aber auch in Texten vorkommen oder in Unterfunktionen.
Mein Ansatz war, den übergebenen Strign erst mal zu splitten und die Bruchstücke dann nach Bedarf wieder zusammenzusetzen. Das ist aber wahrscheinlich wohl komplett der falsche Weg.
Die zweite Idee wäre, mit RegEx zu arbeiten, aber damit kenn ich mich mal so richtig überhaupt nicht aus.
Als Beispiel hier mal der 1:1 eingelesene Text (ohne Java Escape Zeichen), F2 würde also also das Wort "Welt" in Anführungszeichen sehen.
Code:
F1(F2("Hallo \"Welt\"";dingeling=5);par1=1;par2=F3("dada(\"hallo\")";p=2))
Code:
F2("Hallo \"Welt\"";dingeling=5)
par1=1
par2=F3("dada(\"hallo\")";p=2)
Der Regex sollte also im Grunde erkennen, ob es sich um eine Unterfunktion oder Text handelt und an der Stelle nicht zerlegen