Thanks for releasing this great little library, I had a few integration questions based on how we might use it in place of our own expression library.
Is there any way of doing a preflight evaluation of an expression to know what variables it might use/need? For example, if a user enters
$x + $y + 1
it would be nice to be able to evaluate an expression, if it's inValid it could return a list of missing variables. I would see this as an optimization for a system like ours where an expression might rely on a variable that is the result of some dependency, but I only really want to evaluate that dependency when it's actually needed.
I also couldn't help notice that your GUI uses a curve input to set values in the expressions - is this a two way street? If the expression is updates does the UI widget know and update it's values? If so, how would I query an expression to find out a specific values, is there a function that returns a SeExpr::SeCurve?
Is there any sort of SIMD optimization or would this fall outside the scope of how SeExpr should be used? Or have you found it's speed to be sufficient for most of the data sets you're working with?
Cheers,
Colin