大师状态:
发展状况:
ChaiScript
http://www.chaiscript.com
(c) 2009-2012 乔纳森·特纳 (c) 2009-2017 杰森·特纳
在BSD许可下发布,详细信息参见“license.txt”。
ChaiScript 是唯一一种从头开始设计的嵌入式脚本语言,它直接针对 C++,并利用现代 C++ 开发技术,与开发人员一起工作,以他们期望的方式工作。作为原生 C++ 应用程序,它比现有的嵌入式脚本语言具有一些优势:
ChaiScript 需要 C++17 编译器来构建并支持可变参数模板。它已经使用 gcc 7 和 clang 6(使用 libcxx)进行了测试。
您可以使用 vcpkg 依赖项管理器下载并安装 ChaiScript:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install chaiscript
vcpkg 中的 ChaiScript 端口由 Microsoft 团队成员和社区贡献者保持最新。如果版本已过时,请在 vcpkg 存储库上创建问题或拉取请求。
#include <chaiscript/chaiscript.hpp>
添加到源文件中chai
新引擎,如下所示: chaiscript::ChaiScript chai
实例化后,引擎就准备好开始运行 ChaiScript 源代码。处理 ChaiScript 源代码有两个主要选项:使用chai.eval(string)
一次一行,使用chai.eval_file(fname)
一次一个文件
要使 C++ 代码中的函数对脚本可见,必须将它们注册到脚本引擎。为此,请调用 add:
chai.add(chaiscript::fun(&my_function), "my_function_name");
注册后,该函数将对脚本可见为“my_function_name”
ChaiScript 与 ECMAScript(又名 JavaScript(tm))类似,但进行了一些修改以使其更易于使用。有关用法示例,请参阅“samples”目录,要更深入地了解该语言,“unittests”目录中的单元测试涵盖了大部分内容。
有关如何注册 C++ 应用程序部分的示例,请参阅“samples”目录中的“example.cpp”。 Example.cpp 很详细,显示了使用该库的所有可能的方式。如需更多文档,请在构建文件夹中生成 doxygen 文档,或访问网站 http://www.chaiscript.com。
最短的完整示例如下:
// / main.cpp
# include < chaiscript/chaiscript.hpp >
double function ( int i, double j)
{
return i * j;
}
int main ()
{
chaiscript::ChaiScript chai;
chai. add ( chaiscript::fun (&function), " function " );
double d = chai. eval < double >( " function(3, 4.75); " );
}