编程语言
首页 > 编程语言> > python – 我应该使用Lex还是自制的解决方案来解析公式?

python – 我应该使用Lex还是自制的解决方案来解析公式?

作者:互联网

我正在编写一个基于规则的小型“数学”引擎.我意识到这一点尚不清楚,所以我将提供一个小例子.

假设你有一些变量a,它包含一个整数.您还可以使用一些可以应用于该号码的功能,即

> sqr – 数字的平方
> flp – 翻转数字的位
> dec – 递减数字
> inc – 增加数字

然后你可以说do_formula(a,“2sqr inc flp”).如果a为3,则将它平方两次(81),递增它(82),并翻转它的位(~82 – 如果处理有符号整数,则为-83,我相信).

解析公式的最佳方法是什么?这是相对简单的,我正在考虑使所有的操作码都是3个字符……使用Lex会不会有点难度?我应该写一个简单的自酿解决方案还是完全使用别的东西?

我意识到上面的例子很傻;我不是在构建一个能够做到这一点的计算器,但它说明了我想要做的很好.

解决方法:

如果你的语法不是超级复杂而你不介意用Python做,那么pyparsing可能正是医生所要求的.我为解析化学方程实现了一些非常相似的东西,花了我一个小时左右来完成它.我在这里添加代码,但它不是特别相关.

标签:python,lex,ply
来源: https://codeday.me/bug/20190701/1343879.html