ChaiScript
Статус проекта:
ChaiScript — это один из немногих встраиваемых скриптовых языков, разработанных с нуля для непосредственной ориентации на C++ и использования современных методов разработки на C++. Он работает с разработчиком так, как он ожидает. Являясь нативным приложением на C++, ChaiScript имеет некоторые преимущества перед существующими встраиваемыми скриптовыми языками:
Требования
Для сборки ChaiScript требуется компилятор C++17 с поддержкой шаблонов с переменным числом аргументов. Он был протестирован с gcc 7 и clang 6 (с libcxx).
Установка с помощью vcpkg
Вы можете загрузить и установить 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 в папке build или посетите веб-сайт 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);");
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )