c# convert string expression to a boolean expression

c# expression-trees parsing

Question

Is it possible to convert a string expression into a boolean condition?

For example, I get the following string:

var b = "32 < 45 && 32 > 20"

I would like to create a bool expression out of this and invoke it. The string representation is also flexible (to make it more fun), so it allows ||, &&, ().

Accepted Answer

I would use Irony, the .NET language kit. You could construct a simple grammar with Irony and then parse the string into executable command. There's a decent example of an arthmetic grammar in this tutorial and in the Expression Grammar Sample, its a pretty common request ;)

I definitely suggest using a proper compiler as opposed to Regex or a roll your own approach - it will be much more extensible if you ever want to add more rules.


Popular Answer

Have a look at Flee (Fast Lightweight Expression Evaluator) on CodePlex.




Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why