الحالة الرئيسية:
وضع التطوير:
تشايسكريبت
http://www.chaiscript.com
(ج) 2009-2012 جوناثان تورنر (ج) 2009-2017 جيسون تورنر
الإصدار بموجب ترخيص BSD، راجع "license.txt" للحصول على التفاصيل.
ChaiScript هي إحدى لغات البرمجة النصية المضمنة الوحيدة المصممة من الألف إلى الياء لاستهداف C++ مباشرة والاستفادة من تقنيات تطوير C++ الحديثة، والعمل مع المطور بالطريقة التي يتوقعون أن تعمل بها. كونه تطبيق C++ أصلي، فإنه يتمتع ببعض المزايا مقارنة بلغات البرمجة النصية المضمنة الموجودة:
يتطلب ChaiScript مترجم C++ 17 للإنشاء مع دعم القوالب المتنوعة. لقد تم اختباره باستخدام gcc 7 و clang 6 (مع libcxx).
يمكنك تنزيل ChaiScript وتثبيته باستخدام مدير التبعيات vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install chaiscript
يتم تحديث منفذ ChaiScript في vcpkg بواسطة أعضاء فريق Microsoft والمساهمين في المجتمع. إذا كان الإصدار قديمًا، فيرجى إنشاء مشكلة أو سحب طلب على مستودع vcpkg.
#include <chaiscript/chaiscript.hpp>
إلى ملفك المصدرchai
مثل: chaiscript::ChaiScript chai
بمجرد إنشاء مثيل له، يصبح المحرك جاهزًا لبدء تشغيل مصدر ChaiScript. لديك خياران رئيسيان لمعالجة مصدر ChaiScript: سطر في كل مرة باستخدام chai.eval(string)
وملف في كل مرة باستخدام chai.eval_file(fname)
لجعل الوظائف الموجودة في كود C++ الخاص بك مرئية للبرامج النصية، يجب تسجيلها في محرك البرمجة النصية. للقيام بذلك، اتصل بإضافة:
chai.add(chaiscript::fun(&my_function), "my_function_name");
بمجرد التسجيل، ستكون الوظيفة مرئية للنصوص البرمجية باسم "my_function_name"
يشبه ChaiScript ECMAScript (المعروف أيضًا باسم JavaScript(tm))، ولكن مع بعض التعديلات لتسهيل استخدامه. للحصول على أمثلة الاستخدام، راجع دليل "النماذج"، وللحصول على نظرة أكثر تعمقًا على اللغة، فإن اختبارات الوحدة في دليل "unittests" تغطي معظم الأمور.
للحصول على أمثلة حول كيفية تسجيل أجزاء من تطبيق C++ الخاص بك، راجع "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); " );
}