评估已经解析的持续时间表达式

问题描述

我正在编写一个工具,该工具可以读取go代码并解析一些持续时间表达式,例如:dur := 5 * time.Minute。我已经完成了解析步骤,并得到了*ast.BinaryExpr。如何评估此表达式并获得其价值?

工具链/软件包中是否有东西,还是需要手工处理?

解决方法

我认为parser软件包是您想要的软件包。 go还有一个名为eval(https://godoc.org/github.com/apaxa-go/eval)的软件包,用于评估表达式。 还有两个库可能会帮助您。

https://github.com/PaesslerAG/gval

https://github.com/Knetic/govaluate

Gval(Go eVALuate)为评估任意表达式(特别是类似Go的表达式)提供了支持。

祝你好运!