Estoy escribiendo una aplicación que permite a un usuario ingresar una expresión booleana. Necesito la capacidad de evaluar la expresión booleana ingresada en tiempo de ejecución y estoy buscando tanto un analizador como un validador expressoin.Boolean y Math Expression Parser
Analizador
El analizador tiene que tomar una expresión booleana como una cadena y devolver verdadero/falso.
Ejemplo:
string expression = "(1 == 1) && (1 > 0)"; Parser parser = new Parser(); boolean result = parser.parse(expression); // Result should be True.
Además de manejar expresiones booleanas también lo necesito para manejar Math.
expression = "((1 + 1 * 2) == 1)"; result = parser.parse(expression); // Result should be False.
Validar
De modo que pueda indicar al usuario si hay un problema con la frase siendo entré También necesito una manera de validar la sintaxis.
Estoy trabajando en C# utilizando .NET Compact Framework, pero si conoce algo escrito en otro idioma que puede ser útil.
Gracias por cualquier ayuda que pueda proporcionar. Tom
+1 para ANTLR. Si miras esto y lo descartas, pensando que esto es demasiada molestia, reconsidera. Te recomiendo que uses ANTLRworks como una herramienta de desarrollo de gramática y que emita sus clases lexer y analizador en tu árbol de proyectos de Visual Studio. Es relativamente sencillo y es fácil ajustar de forma iterativa tu gramática y ver rápidamente sus efectos en tu mundo .NET. –
Al decir "usted" arriba, me refiero a Thomas, el OP. –
@ Chris Farmer: Este es el objetivo de C# Compact Framework ... podría ser un poco pesado para eso ... – t0mm13b