by J. & J. Turner
Easy to use embedded scripting language for C++.

ChaiScript is an embeddable scripting language, used in games so far.

It makes interoperation with the host language, which is C++11, very easy.

For example, passing things forth and back like objects and exceptions is easily possible in few lines. ChaiScript relies heavily on template magic.

// ChaiScript supports the normal kind of control blocks you've come to expect from
// C++ and JavaScript
 
if (5 > 2) {
  print("Yup, 5 > 2");
} else if (2 > 5) {
  // never gonna happen
} else {
  // really not going to happen
}
 
var x = true;
 
while (x)
{
  print("x was true");
  x = false;
}
 
for (var i = 1; i < 10; ++i)
{
  print(i); // prints 1 through 9
}
 
 
// function definition
 
def myFunc(x) {
  print(x);
}
 
// function definition with function guards
def myFunc(x) : x > 2 && x < 5 {
  print(to_string(x) + " is between 2 and 5")
}
 
def myFunc(x) : x >= 5 {
  print(t_string(x) + " is greater than or equal to 5")
}
 
myFunc(3)
 
// ChaiScript also supports in string evaluation, which C++ does not
 
print("${3 + 5} is 8");
 
// And dynamic code evaluation
 
var value = eval("4 + 2 + 12");
 
// value is equal to 18
Information updated 08/26/15
View Comments