你会如何在c#中创建表达式解析器?

时间:2011-06-29 06:54:34

标签: c# .net string interpreted-language

我只是好奇。就像解释语言甚至语句计算器一样,人们如何将输入或文件给出的字符串转换为实际表达式?例如“输入计算:”,然后编写“2 * 7/4”这是一个字符串。程序如何将字符串转换为实际表达式?将字符串转换为int很容易但是如何转换运算符,如 + - / 等等?我知道这些事情通常都是用 C / C ++ 实现的,但有可能用高级语言来做这样的事情,比如 C#吗?如果是,那么如何?

3 个答案:

答案 0 :(得分:3)

您可以查看以下an article。还有像Flee这样的工具。或者another technique允许您使用CodeDom提供程序评估C#表达式。

答案 1 :(得分:1)

我相信这可以通过表达式树来实现,这就是LINQ的实现方式。

http://msdn.microsoft.com/en-us/library/bb397951.aspx

答案 2 :(得分:1)

Google“解析树”。一个可以用任何图灵完整的语言编写。