Status Guru:
Kembangkan Status:
Skrip Chai
http://www.chaiscript.com
(c) 2009-2012 Jonathan Turner (c) 2009-2017 Jason Turner
Rilis di bawah lisensi BSD, lihat "license.txt" untuk detailnya.
ChaiScript adalah satu-satunya bahasa skrip tertanam yang dirancang dari awal untuk langsung menargetkan C++ dan memanfaatkan teknik pengembangan C++ modern, bekerja dengan pengembang sesuai harapan mereka. Menjadi aplikasi C++ asli, ia memiliki beberapa keunggulan dibandingkan bahasa skrip tertanam yang sudah ada:
ChaiScript memerlukan kompiler C++17 untuk membangun dengan dukungan untuk templat variadik. Telah diuji dengan gcc 7 dan clang 6 (dengan libcxx).
Anda dapat mengunduh dan menginstal ChaiScript menggunakan pengelola ketergantungan vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install chaiscript
Port ChaiScript di vcpkg selalu diperbarui oleh anggota tim Microsoft dan kontributor komunitas. Jika versinya sudah kedaluwarsa, silakan buat masalah atau tarik permintaan pada repositori vcpkg.
#include <chaiscript/chaiscript.hpp>
ke file sumber Andachai
seperti: chaiscript::ChaiScript chai
Setelah dipakai, mesin siap untuk mulai menjalankan sumber ChaiScript. Anda memiliki dua opsi utama untuk memproses sumber ChaiScript: satu baris sekaligus menggunakan chai.eval(string)
dan satu file sekaligus menggunakan chai.eval_file(fname)
Agar fungsi dalam kode C++ Anda terlihat oleh skrip, fungsi tersebut harus didaftarkan pada mesin skrip. Untuk melakukannya, hubungi add:
chai.add(chaiscript::fun(&my_function), "my_function_name");
Setelah terdaftar, fungsinya akan terlihat oleh skrip sebagai "nama_fungsi_saya"
ChaiScript mirip dengan ECMAScript (alias JavaScript(tm)), tetapi dengan beberapa modifikasi agar lebih mudah digunakan. Untuk contoh penggunaan, lihat direktori "sampel", dan untuk melihat lebih dalam bahasanya, pengujian unit di direktori "unittests" mencakup sebagian besar hal.
Untuk contoh cara mendaftarkan bagian aplikasi C++ Anda, lihat "example.cpp" di direktori "samples". Contoh.cpp bertele-tele dan menunjukkan setiap cara yang mungkin untuk bekerja dengan perpustakaan. Untuk dokumentasi lebih lanjut, buat dokumentasi doxygen di folder build atau lihat situs web http://www.chaiscript.com.
Contoh lengkap sesingkat mungkin adalah sebagai berikut:
// / 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); " );
}