1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-chaiscript

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

ChaiScript

Статус проекта:

  • Мастер-статус: Linux Build Status Windows Build status codecov.io.

  • Статус разработки: Linux Build Status Windows Build status codecov.io.

ChaiScript — это один из немногих встраиваемых скриптовых языков, разработанных с нуля для непосредственной ориентации на C++ и использования современных методов разработки на C++. Он работает с разработчиком так, как он ожидает. Являясь нативным приложением на C++, ChaiScript имеет некоторые преимущества перед существующими встраиваемыми скриптовыми языками:

  1. Он использует подход только с заголовками, что упрощает интеграцию с существующими проектами.
  2. Он поддерживает типобезопасность между вашим приложением на C++ и пользовательскими скриптами.
  3. Он поддерживает различные методы C++, включая обратные вызовы, перегруженные функции, методы классов и контейнеры STL.

Требования

Для сборки 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.

Использование

  • Добавьте каталог включения ChaiScript к пути поиска заголовков вашего проекта.
  • Добавьте #include <chaiscript/chaiscript.hpp> в исходный файл.
  • Создайте экземпляр движка ChaiScript в вашем приложении. Например, создайте новый движок с именем chai следующим образом: chaiscript::ChaiScript chai.
  • По умолчанию поведение заключается в загрузке стандартной библиотеки ChaiScript из загружаемого модуля. Второй вариант — скомпилировать библиотеку в ваш код, см. пример ниже.

После создания экземпляр двигателя готов к запуску источника 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
C++ и 5 других языков
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-chaiscript.git
git@api.gitlife.ru:oschina-mirror/mirrors-chaiscript.git
oschina-mirror
mirrors-chaiscript
mirrors-chaiscript
develop