从字符串解析计算树

时间:2011-05-31 09:09:56

标签: c# parsing compiler-construction

我在c#或自动代码生成器中有任何内置库,它接收配置文件并从字符串构建计算器树的解析器,如果没有,请你帮我提供建议 例: “-2 + 5> 3”我想构建计算树,其中<是根'+'是它的右儿子3是左儿子'-2'是左儿子的+和5是它的右儿子。 在这种情况下,树可以做评估是真还是假。

谢谢。

4 个答案:

答案 0 :(得分:6)

看看sprache。这是一个简单的解析器,它允许你构建表达式树,然后评估它应该是容易的位。

答案 1 :(得分:4)

你看过System.Linq.Expressions吗?例如How to convert string into System.Linq.Expressions.Expression in C#?

答案 2 :(得分:3)

Irony库非常易于使用,并且在示例中附带了表达式解析器。

答案 3 :(得分:2)

如果您的目标是评估表达式而不是树本身 - 您可以看一下: http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx

值得注意的是,大多数表达式评估程序的实现都在使用RPN。 http://en.wikipedia.org/wiki/Reverse_Polish_notation