Master-Status:
Entwicklungsstatus:
ChaiScript
http://www.chaiscript.com
(c) 2009–2012 Jonathan Turner (c) 2009–2017 Jason Turner
Veröffentlichung unter der BSD-Lizenz, Einzelheiten finden Sie in „license.txt“.
ChaiScript ist eine der wenigen eingebetteten Skriptsprachen, die von Grund auf direkt für C++ entwickelt wurde und die Vorteile moderner C++-Entwicklungstechniken nutzt und mit dem Entwickler so zusammenarbeitet, wie er es erwarten würde. Da es sich um eine native C++-Anwendung handelt, bietet sie einige Vorteile gegenüber bestehenden eingebetteten Skriptsprachen:
Für die Erstellung von ChaiScript ist ein C++17-Compiler mit Unterstützung für Variadic-Vorlagen erforderlich. Es wurde mit gcc 7 und clang 6 (mit libcxx) getestet.
Sie können ChaiScript mit dem vcpkg-Abhängigkeitsmanager herunterladen und installieren:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install chaiscript
Der ChaiScript-Port in vcpkg wird von Microsoft-Teammitgliedern und Community-Mitwirkenden auf dem neuesten Stand gehalten. Wenn die Version veraltet ist, erstellen Sie bitte einen Issue oder Pull Request im vcpkg-Repository.
#include <chaiscript/chaiscript.hpp>
zu Ihrer Quelldatei hinzuchai
wie folgt: chaiscript::ChaiScript chai
Nach der Instanziierung ist die Engine bereit, mit der Ausführung der ChaiScript-Quelle zu beginnen. Sie haben zwei Hauptoptionen für die Verarbeitung der ChaiScript-Quelle: eine Zeile nach der anderen mit chai.eval(string)
und eine Datei nach der anderen mit chai.eval_file(fname)
Um Funktionen in Ihrem C++-Code für Skripte sichtbar zu machen, müssen sie bei der Skript-Engine registriert werden. Rufen Sie dazu add auf:
chai.add(chaiscript::fun(&my_function), "my_function_name");
Nach der Registrierung ist die Funktion für Skripte als „my_function_name“ sichtbar.
ChaiScript ähnelt ECMAScript (auch bekannt als JavaScript(tm)), weist jedoch einige Modifikationen auf, um die Verwendung zu vereinfachen. Anwendungsbeispiele finden Sie im Verzeichnis „samples“, und für einen detaillierteren Einblick in die Sprache decken die Unit-Tests im Verzeichnis „unittests“ den größten Teil ab.
Beispiele für die Registrierung von Teilen Ihrer C++-Anwendung finden Sie unter „example.cpp“ im Verzeichnis „samples“. Beispiel.cpp ist ausführlich und zeigt alle möglichen Möglichkeiten, mit der Bibliothek zu arbeiten. Für weitere Dokumentation generieren Sie die Doxygen-Dokumentation im Build-Ordner oder besuchen Sie die Website http://www.chaiscript.com.
Das kürzestmögliche vollständige Beispiel folgt:
// / 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); " );
}