大師狀態:
發展狀況:
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); " );
}