Estado maestro:
Estado de desarrollo:
ChaiScript
http://www.chaiscript.com
(c) 2009-2012 Jonathan Turner (c) 2009-2017 Jason Turner
Lanzamiento bajo la licencia BSD, consulte "license.txt" para obtener más detalles.
ChaiScript es uno de los únicos lenguajes de programación integrados diseñados desde cero para apuntar directamente a C++ y aprovechar las técnicas modernas de desarrollo de C++, trabajando con el desarrollador sobre cómo esperarían que funcionara. Al ser una aplicación C++ nativa, tiene algunas ventajas sobre los lenguajes de secuencias de comandos integrados existentes:
ChaiScript requiere un compilador de C++ 17 para compilar con soporte para plantillas variadas. Ha sido probado con gcc 7 y clang 6 (con libcxx).
Puede descargar e instalar ChaiScript utilizando el administrador de dependencias vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install chaiscript
Los miembros del equipo de Microsoft y los contribuyentes de la comunidad mantienen actualizado el puerto ChaiScript en vcpkg. Si la versión no está actualizada, cree un problema o una solicitud de extracción en el repositorio de vcpkg.
#include <chaiscript/chaiscript.hpp>
a su archivo fuentechai
así: chaiscript::ChaiScript chai
Una vez creado una instancia, el motor está listo para comenzar a ejecutar la fuente ChaiScript. Tiene dos opciones principales para procesar el código fuente de ChaiScript: una línea a la vez usando chai.eval(string)
y un archivo a la vez usando chai.eval_file(fname)
Para que las funciones de su código C++ sean visibles para los scripts, deben estar registradas en el motor de scripting. Para hacerlo, llame a agregar:
chai.add(chaiscript::fun(&my_function), "my_function_name");
Una vez registrada, la función será visible para los scripts como "my_function_name"
ChaiScript es similar a ECMAScript (también conocido como JavaScript(tm)), pero con algunas modificaciones para hacerlo más fácil de usar. Para ver ejemplos de uso, consulte el directorio "samples" y, para una visión más profunda del lenguaje, las pruebas unitarias en el directorio "unittests" cubren la mayor parte del terreno.
Para ver ejemplos de cómo registrar partes de su aplicación C++, consulte "example.cpp" en el directorio "samples". Ejemplo.cpp es detallado y muestra todas las formas posibles de trabajar con la biblioteca. Para obtener más documentación, genere la documentación de doxygen en la carpeta de compilación o consulte el sitio web http://www.chaiscript.com.
El ejemplo completo más corto posible es el siguiente:
// / 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); " );
}