将代码转换为字符串的工具?

时间:2010-07-03 22:42:04

标签: string lua

我发现自己不得不将一大块Lua代码变成一个字符串,这样它就可以作为一个合适的Lua块运行。 编写这样的代码并不太难,但是它耗费时间并容易出现轻微的错误,导致开发时间和耐心的损失。

是否有任何工具/过滤器能够获取一段可运行的代码并将其转换为正确的字符串?

如果我没有正确解释自己(不是以英语为母语的人,我的道歉!),我想找到一个可以改变代码的工具

MyFunction("String!")

"MyFunction(\"String!\")"

在示例中这很简单,但在谈论几行代码时,它非常繁琐。

我使用Linux作为我的主要操作系统,也许有一些过滤工具可用?基于Lua的解决方案也很有趣,只是为了娱乐。

5 个答案:

答案 0 :(得分:6)

您可以使用长字符串包装代码。无论您使用何种方法实现它,这都应该很简单:

myString = [==[
    for i = 1, 10 do
        print("Hello #"..i)
    end
]==]

只要匹配,您可以在开始和结束括号之间包含任意数量的=符号(包括无)。这样,您肯定会有一个“结束注释”符号,该符号不会出现在随附的源代码中。

答案 1 :(得分:2)

使用string.format("%q",s)

答案 2 :(得分:1)

IntelliJ做得很好。

答案 3 :(得分:1)

您可以执行类似的操作,但结果只能通过Lua编译器本身读取。

string.dump(function() print("Hello world") end)

运行此类代码,您可以执行此操作

loadstring(string.dump(function() print("Hello world") end))()

答案 4 :(得分:0)

这样的事情会起作用吗?

sed 's/"/\\"/g;' join_string | tr '\n' '\a' | sed 's/\a/\\n/g' | more