是否可以将表达式转换为Lua中的字符串?

时间:2014-09-22 01:53:12

标签: string lua

我认为这是不可能的,但我只是想知道你是否可以将表达式转换为字符串。

例如,以下添加五个和五个

print(tostring(5 + 5)) --> 10

我想知道你是否可以按照以下方式做点什么。

print(tostring(5 + 5)) --> 5 + 5

我想知道因为我正在制作一个图形计算器,并且要创建一个函数,它必须是一个字符串。我希望通过制作它可以使其更加用户友好,这样您就可以输入x ^ 2而不是"x ^ 2"等表达式

2 个答案:

答案 0 :(得分:2)

您要做的是将表达式5 + 5转换为字符串"5 + 5"

AFAIK,你不能在Lua那样做。但是,您可以使用"5 + 5"5 + 5转换为loadstring来执行相反的操作。希望它有所帮助。

答案 1 :(得分:0)

如果您将表达式作为某些Lua代码的一部分,则可以将该代码解析为类似抽象语法树(AST)的内容,然后将该AST转换为您需要的任何结构,可以是字符串或函数(这对你的图形计算器来说可能更方便。)

有几个Lua解析器可以做到这一点(将Lua代码转换为AST并从AST生成Lua代码); Metalua(仅限5.1;仅生成字节码?)和TypedLua(5.2+)可以做到这一点,还有一些列出的其他Lua解析器here