Ich schreibe eine Anwendung, die es einem Benutzer erlaubt, einen booleschen Ausdruck einzugeben. Ich brauche die Fähigkeit, den eingegebenen booleschen Ausdruck zur Laufzeit auszuwerten und suche nach einem Parser und einem Expressoin-Validator.Boolescher und mathematischer Ausdruck Parser
Parser
Der Parser braucht einen Booleschen Ausdruck als String zu nehmen und wahr/falsch zurück.
Beispiel:
string expression = "(1 == 1) && (1 > 0)"; Parser parser = new Parser(); boolean result = parser.parse(expression); // Result should be True.
Neben Booleschen Ausdrücken Handhabung Ich brauche es auch Mathe zu behandeln.
expression = "((1 + 1 * 2) == 1)"; result = parser.parse(expression); // Result should be False.
Validate
Damit ich den Benutzer sagen kann, ob es ein Problem mit dem Ausdruck wird eingegeben Ich brauche auch eine Möglichkeit, die Syntax zu validieren.
Ich arbeite in C# mit dem .NET Compact Framework, aber wenn Sie etwas in einer anderen Sprache geschrieben wissen, die hilfreich sein kann.
Vielen Dank für Ihre Hilfe. Tom
+1 für ANTLR. Wenn du dir das ansiehst und es ablehnst, denkst du, dass das zu viel Ärger ist, dann überdenk dich bitte. Ich empfehle Ihnen, ANTLRworks als Grammatik-Entwicklungstool zu verwenden und seine Lexer- und Parser-Klassen in Ihre Visual Studio-Projektstruktur auszugeben. Es ist relativ nahtlos und es ist einfach, Ihre Grammatik iterativ zu optimieren und die Auswirkungen in Ihrer .NET-Welt schnell zu sehen. –
Mit "Sie" oben meine ich Thomas der OP. –
@Chris Farmer: Dies ist Ziel C# Compact Framework ... könnte ein bisschen schwer dafür sein ... – t0mm13b