views:

193

answers:

2

I need to test a logical expression held in a string to see if it evaluate to TRUE or FALSE.(the strig is built dynamically)
For example the resulting string may contain "'dog'<'cat' OR (1>4 AND 4<6)". There are no variables in the string, it will logically evaluate. It will only contain simple operators = > < >< >= <= and AND , OR and Open and Close Brackets, string constants and numbers. (converted to correct syntax && || etc.)

I currently acheive this by creating a jscipt function and compiling it into a .dll. I then reference the .dll in my VB.NET project.

class ExpressionEvaluator  
{  
  function Evaluate(Expression : String)  
  {  
    return eval(Expression);  
  }  
 }  

Is there a simpler method using built in .NET functions or Lamdba expressions.

A: 

I tried the demo out for this project and you might like it over you current method of evaluating. Note, it doesn't use lamdba expressions or any build it .NET methods.

http://web1.codeproject.com/KB/vb/expression_evaluator.aspx?msg=1151870

Bedwell
A: 

try out: http://www.codeproject.com/KB/cs/ExpressionEval.aspx

More guidance :http://www.thefreakparade.com/2008/07/evaluating-expressions-at-runtime-in-net-c/

Good one: http://flee.codeplex.com/ Boolean Example which you are looking for : http://flee.codeplex.com/wikipage?title=BooleanExpression&amp;referringTitle=Examples (ignore the variable adding part as you are not looking for variable)

Sachin