我正在从事一个需要嵌入式 DSL 来满足其预期要求的项目。
DSL 将基于用户定义的事件。这是所需语法的模型:
user-defined-event-1 {
// event body
}
user-defined-event-2 {
// event body
}
根据事件,我知道的最相似的语言可能是 LSL (from Second Life) .
因此,在阅读了关于 SO 的其他类似问题之后,我想寻求 C++(我在 Qt 中工作)上最好的可嵌入脚本引擎(Ruby、Lua、Python 等),它允许我创建此 DSL。
在我的项目中,我会测试脚本是否正确使用 DSL 语法(至少定义了一个事件)并为用户提供底层脚本引擎的所有功能,如果可能的话,Qt。
嵌入式语言与 Qt 一起工作不是必需的。它可以是孤立的,但也有一些集成会很好。
最佳答案
有 at least a few Qt
-Lua bindings在那里。 Lua 在某种程度上可以执行上面显示的语法;具体来说,{}
表示 Lua 中的表(关联数组),如果您只是将匿名表传递给函数,则不需要括号:
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> function LengthOfTable(t) print(#t) end
> LengthOfTable ({"a","b","c"})
3
> LengthOfTable {"a","b","c"}
3
Lua 是否真的最适合您的应用程序,当然取决于您的应用程序。无论哪种方式,Lua 都非常容易 (IMO) 嵌入到 C 或 C++ 中。
关于c++ - DSL 的嵌入式脚本引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591114/