I need a fast runtime expression parser

Posted by Chris Lively on Stack Overflow See other posts from Stack Overflow or by Chris Lively
Published on 2010-12-08T20:33:49Z Indexed on 2012/11/23 11:00 UTC
Read the original article Hit count: 213

Filed under:
|

I need to locate a fast, lightweight expression parser.

Ideally I want to pass it a list of name/value pairs (e.g. variables) and a string containing the expression to evaluate. All I need back from it is a true/false value.

The types of expressions should be along the lines of:

varA == "xyz" and varB==123

Basically, just a simple logic engine whose expression is provided at runtime.

UPDATE
At minimum it needs to support ==, !=, >, >=, <, <=

Regarding speed, I expect roughly 5 expressions to be executed per request. We'll see somewhere in the vicinity of 100/requests a second. Our current pages tend to execute in under 50ms. Usually there will only be 2 or 3 variables involved in any expression. However, I'll need to load approximately 30 into the parser prior to execution.

UPDATE 2012/11/5
Update about performance. We implemented nCalc nearly 2 years ago. Since then we've expanded it's use such that we average 40+ expressions covering 300+ variables on post backs. There are now thousands of post backs occurring per second with absolutely zero performance degradation.

We've also extended it to include a handful of additional functions, again with no performance loss. In short, nCalc met all of our needs and exceeded our expectations.

© Stack Overflow or respective owner

Related posts about c#

Related posts about asp.net-4.0