Ist es möglich, ein ! (nicht) unter Verwendung von Ausdrucksbäumen umzusetzen? Ich interessiere mich für die Erstellung einer C# Eval-Klasse, die logische Ausdrücke analysiert und auswertet, die true, false, ||, && und ! enthalten. Ich weiß, dass && und || derzeit von .NET 4 Ausdrucksbäumen unterstützt werden, aber ich frage mich, ob es einen Weg gibt, so etwas wie !(x && y) || z zu implementieren, wobei z=false, y=true und z=false sind.
Derzeit verwende ich einen Standard-Stack-basierten Tokenizer, Parser, Auswerter, um diese Arten von Ausdrücken auszuwerten, würde es aber gerne aufgeben, wenn ein geeigneter Ausdrucksbaum erstellt und dynamisch ausgeführt werden könnte.