You know how I said that adding anything with overridden operators to the expression parser would be pretty easy?
Actually, it's ridiculously easy. I just added std::string as a basic type, and it took a whole 5 minutes.
I can use strings in my expression parser... that is equal parts exhilarating and terrifying. :)
Anyway, I'm going to bind UI controls to C++ code via expressions. The variable scoping rules mean I can bind an expression to a specific object/component and basically manipulate it directly.
I really need to get function calling working for button events. I can parse the argument list easily enough, I just haven't figured out exactly how I want to bind it to C++ code yet.