Ohne Parsercode kann ich dir da leider nicht helfen.
Aber: den Parser als Funktion zu implementieren ist Schwachfug
Bastel dir eine Klasse außenrum, die die Formel einmal in einen Bytecode kompiliert. Dann musst du nachher nur noch die Parameter und den Bytecode in einen Interpreter werfen, dann wirds wieder.