--- linuxsampler/trunk/src/scriptvm/tree.h 2019/08/30 12:23:40 3582 +++ linuxsampler/trunk/src/scriptvm/tree.h 2019/08/30 12:39:18 3583 @@ -40,6 +40,27 @@ STMT_NOOP, }; +/** + * Convenience function used for retrieving the (assumed) data type of a given + * script variable name. + * + * @param name - some script variable name (e.g. "$foo") + * @return variable's assumed data type (e.g. INT_EXPR for example above) + */ +inline ExprType_t exprTypeOfVarName(const String& name) { + if (name.empty()) return (ExprType_t) -1; + const char prefix = name[0]; + switch (prefix) { + case '$': return INT_EXPR; + case '%': return INT_ARR_EXPR; + case '~': return REAL_EXPR; + case '?': return REAL_ARR_EXPR; + case '@': return STRING_EXPR; + case '!': return STRING_ARR_EXPR; + } + return (ExprType_t) -1; +} + class Node { public: Node();