将lua脚本作为凝胶脚本运行

时间:2018-01-07 18:04:41

标签: lua

我有以下lua脚本,用正确的单词分隔字符串:

names = "aa bb cc dd"
words = {}
for word in names:gmatch("%w+") do table.insert(words, word) end
for k,v in pairs(words) do print(k,v) end

我正在使用一个名为Graphite的程序,这是一个计算机图形平台等等。在其自述文件中写道:

  

您可以编写LUA脚本并使用Graphite运行它。只需加载   使用GEL的脚本 - >执行文件。

对LUA的经验非常少,对GEL的了解不多,我在运行脚本时遇到了麻烦。经过一些谷歌搜索后我发现了这个:http://gema.sourceforge.net/new/gel.shtml#3_1, 但我仍然不太清楚凝胶与lua之间的联系是什么。在本网站中,它被描述为:Gea的Lua绑定,一种通用文本处理实用程序。

上面的脚本例如在lua解释器中按预期工作。另一方面,当我尝试将其作为.gel脚本执行时(因为上面提到的软件需要.gel脚本),它会返回语法错误。

有关如何使其作为.gel脚本运行的任何想法?或者其他可能有帮助的评论?

1 个答案:

答案 0 :(得分:0)

如果您仔细阅读文档,您会注意到:

  
      
  • 使用新语法"![" "!]"
  • 将lua函数嵌入到gema文件中   

他们还提供了一个例子:

![
function inflog(x)
  if x>0 then return math.log(x)
  else return "-infty"
  end
end
!]

<N>=@lua{return inflog($0)}

遵循相同的示例,以下内容应该有效:

![
function split(names)
    words = {}
    for word in names:gmatch("%w+") do table.insert(words, word) end
    for k, v in ipairs(words) do print(k, v) end
    return words
end
!]

<N>=@lua{return split($0)}