如何使用Lua中的LPEG开始编写表达式求值器?

例如,我传递一个表达式字符串和一个上下文表,它返回一个布尔值,指示它是否为真/假。我可以使用LPEG做到这一点吗?

类似于以下内容:

context = {
  x = 3,
  y = 3
}
local result = eval("x==y", context)
点赞
用户17237579
用户17237579

你可以编写一个 LPeg 语法,将表达式解析成 AST,然后使用上下文读取 AST 并使用 eval 函数进行计算。查看 lpeg.re doc 了解如何使用 LPeg 获得 AST。

2021-10-25 02:38:01