Status mestre:
Status de desenvolvimento:
ChaiScript
http://www.chaiscript.com
(c) 2009-2012 Jonathan Turner (c) 2009-2017 Jason Turner
Versão sob a licença BSD, consulte "license.txt" para obter detalhes.
ChaiScript é uma das únicas linguagens de script incorporadas projetadas desde o início para atingir diretamente o C++ e aproveitar as vantagens das técnicas modernas de desenvolvimento do C++, trabalhando com o desenvolvedor como ele espera que funcione. Sendo um aplicativo C++ nativo, ele tem algumas vantagens sobre as linguagens de script incorporadas existentes:
ChaiScript requer um compilador C++17 para construir com suporte para modelos variados. Foi testado com gcc 7 e clang 6 (com libcxx).
Você pode baixar e instalar o ChaiScript usando o gerenciador de dependências vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install chaiscript
A porta ChaiScript no vcpkg é mantida atualizada pelos membros da equipe da Microsoft e colaboradores da comunidade. Se a versão estiver desatualizada, crie um problema ou solicitação pull no repositório vcpkg.
#include <chaiscript/chaiscript.hpp>
ao seu arquivo de origemchai
assim: chaiscript::ChaiScript chai
Uma vez instanciado, o mecanismo está pronto para começar a executar a fonte ChaiScript. Você tem duas opções principais para processar a fonte ChaiScript: uma linha por vez usando chai.eval(string)
e um arquivo por vez usando chai.eval_file(fname)
Para tornar as funções em seu código C++ visíveis para scripts, elas devem ser registradas no mecanismo de script. Para fazer isso, chame add:
chai.add(chaiscript::fun(&my_function), "my_function_name");
Uma vez registrada, a função ficará visível para scripts como "my_function_name"
ChaiScript é semelhante ao ECMAScript (também conhecido como JavaScript(tm)), mas com algumas modificações para facilitar seu uso. Para exemplos de uso, consulte o diretório "samples" e, para uma visão mais aprofundada da linguagem, os testes de unidade no diretório "unittests" cobrem a maior parte do terreno.
Para obter exemplos de como registrar partes de seu aplicativo C++, consulte "example.cpp" no diretório "samples". Exemplo.cpp é detalhado e mostra todas as maneiras possíveis de trabalhar com a biblioteca. Para obter mais documentação, gere a documentação do doxygen na pasta build ou consulte o site http://www.chaiscript.com.
Segue o exemplo completo mais curto possível:
// / 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); " );
}