Vor einiger Zeit habe ich einen Formelparser geschrieben, der beliebige Formeln analysiert und intern als "Umgekehrte Polnische Notation" (UPN) darstellt (Vielleicht besser bekannt als Infix-Notation oder "Reverse Polish Notation" - RPN). Die Speicherung erfolgt natürlich nicht als Abfolge von Zeichen oder Strings, sondern der Term wird in "Tokens" zerlegt. Das sind Klassen bzw. Unterklassen, die etwa bei Operatoren auch gleich deren Implementierung umfassen - verzichtet habe ich allerdings auf die Vereinfachung der Terme.
... herunterladen kannst du die Borland Package Library (BPL) einschließlich Beispielanwendung hier:
http://www.epifiles.de/daten/index.php?N=A&dir=epiSource%2FDelphi%2FMathExpression
Wie du vielleicht schon am Begriff BPL gemerkt hast, handelt es sich jedoch nicht um .Net sondern um Delphi (war damals für den Schulunterricht) - vielleicht hilft es dir dennoch weiter.
Die Zip-Datei enthalt drei Ordner:
1) MathExpression: Die BPL ("Klassenbibliothek"), welche die eigentliche Funktion zur Verfügung stellt. Für dich interessant sind vor allem die Quellcode-Dateien MathExpression.pas und Tokens.pas
2) MathExpressionBPLSample: Beispielanwendung, die auf obige BPL aufbaut.
3) MathExpressionSample: Wie MathExpressionBPLSample, allerdings wird die Funktionalität der BPL direkt eingebunden.
Die Dokumentation kann ich leider nicht mehr finden, vielleicht habe ich auch nie eine geschrieben.
PS: Ich halte einen eigenständigen Parser für die bessere Lösung. Der zuvor verlinkte Artikel (
http://www.codeproject.com/cs/algorithms/matheval.asp) beschreibt zwar eine sehr simple wie auch elegante Lösung, die bei falscher Umsetzung allerdings schwerwiegende Sicherheitslücken schafft.