Статус мастера:
Статус разработки:
ЧайСкрипт
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).
Вы можете скачать и установить 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++ видимыми для сценариев, их необходимо зарегистрировать в механизме сценариев. Для этого вызовите add:
chai.add(chaiscript::fun(&my_function), "my_function_name");
После регистрации функция будет видна скриптам как «my_function_name».
ChaiScript похож на ECMAScript (он же JavaScript(tm)), но с некоторыми изменениями, упрощающими его использование. Примеры использования см. в каталоге «samples», а для более глубокого изучения языка модульные тесты в каталоге «unittests» охватывают большую часть вопросов.
Примеры регистрации частей вашего приложения C++ см. в файле «example.cpp» в каталоге «samples». Файл 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); " );
}