diff options
Diffstat (limited to 'src/uscxml')
-rw-r--r-- | src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp b/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp index 6fa56df..8eb1ce1 100644 --- a/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp +++ b/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp @@ -341,6 +341,16 @@ bool LuaDataModel::isLocation(const std::string& expr) { } bool LuaDataModel::isValidSyntax(const std::string& expr) { + int preStack = lua_gettop(_luaState); + int err = luaL_loadstring (_luaState, expr.c_str()); + + // clean stack again + lua_pop(_luaState, lua_gettop(_luaState) - preStack); + + + if (err == LUA_ERRSYNTAX) + return false; + return true; } |