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