C# eval function, how to parse an expression and evaluate it