August 3: Stefan had a few radical suggestions on the quoting code:

The first one was pretty simple to do. Now, the second one needed some effort. I went through the code and realised that the four cases I had could be reduced to two: one to stop parsing at a given token, and the other to call another function. This could be done because only quotes are handled using recursion, and they have consistent behaviour. Since this represents a change from previous methods, I've put it in another branch: scripting_test_parse, and the commits are:

August 5: Started on the documentation: Features added

August 6: More changes to the expand_string function:

As they say, perfection is achieved not when no more can be added, but when no more can be removed. So, I'm trying to reduce the code as much as possible.