マスターステータス:
開発ステータス:
チャイスクリプト
http://www.chaiscript.com
(c) 2009-2012 ジョナサン ターナー (c) 2009-2017 ジェイソン ターナー
BSD ライセンスに基づいてリリースされます。詳細については、「license.txt」を参照してください。
ChaiScript は、C++ を直接ターゲットにし、最新の C++ 開発テクニックを活用するためにゼロから設計された唯一の組み込みスクリプト言語の 1 つであり、開発者が期待する動作方法と協力して開発者と協力します。ネイティブ 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::ChaiScript chai
インスタンス化されると、エンジンは ChaiScript ソースの実行を開始する準備が整います。 ChaiScript ソースを処理するには、主に 2 つのオプションがあります。chai.eval chai.eval(string)
使用して一度に 1 行、もう 1 つは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 ドキュメントを生成するか、Web サイト 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); " );
}