summaryrefslogtreecommitdiffstats
path: root/src/uscxml
diff options
context:
space:
mode:
authorjuehv <heuschkel@tk.tu-darmstadt.de>2016-11-23 16:27:58 (GMT)
committerjuehv <heuschkel@tk.tu-darmstadt.de>2016-11-23 16:27:58 (GMT)
commite7c0fbce1c1a5b4fe327c6a1e551c347bb30a332 (patch)
tree16bafc7c6f08a0b86ee3a23bd908ee045b8f26cd /src/uscxml
parent7323947b6f65d44e5cb73347555256415a297138 (diff)
parentfa50ad507898d1e119ddd9ed35fd9b3b0ccf2659 (diff)
downloaduscxml-e7c0fbce1c1a5b4fe327c6a1e551c347bb30a332.zip
uscxml-e7c0fbce1c1a5b4fe327c6a1e551c347bb30a332.tar.gz
uscxml-e7c0fbce1c1a5b4fe327c6a1e551c347bb30a332.tar.bz2
Merge branch 'master' of github.com:tklab-tud/uscxml
Diffstat (limited to 'src/uscxml')
-rw-r--r--src/uscxml/interpreter/BasicContentExecutor.cpp8
-rw-r--r--src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp22
2 files changed, 22 insertions, 8 deletions
diff --git a/src/uscxml/interpreter/BasicContentExecutor.cpp b/src/uscxml/interpreter/BasicContentExecutor.cpp
index 9f58b46..6b12afd 100644
--- a/src/uscxml/interpreter/BasicContentExecutor.cpp
+++ b/src/uscxml/interpreter/BasicContentExecutor.cpp
@@ -630,12 +630,14 @@ Data BasicContentExecutor::elementAsData(XERCESC_NS::DOMElement* element) {
for (auto textIter = textChildren.begin(); textIter != textChildren.end(); textIter++) {
contentSS << X((*textIter)->getNodeValue());
}
- try {
+#if 0
+ try {
Data d = _callbacks->getAsData(contentSS.str());
if (!d.empty())
return d;
} catch(...) {}
-
+#endif
+ // test294, test562
return Data(spaceNormalize(contentSS.str()), Data::VERBATIM);
}
}
@@ -644,4 +646,4 @@ Data BasicContentExecutor::elementAsData(XERCESC_NS::DOMElement* element) {
return Data();
}
-} \ No newline at end of file
+}
diff --git a/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp b/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp
index 4b7ed67..ed96622 100644
--- a/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp
+++ b/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp
@@ -326,6 +326,7 @@ void LuaDataModel::setEvent(const Event& event) {
Data LuaDataModel::evalAsData(const std::string& content) {
Data data;
+ ErrorEvent originalError;
std::string trimmedExpr = boost::trim_copy(content);
@@ -337,21 +338,32 @@ Data LuaDataModel::evalAsData(const std::string& content) {
lua_pop(_luaState, retVals);
return data;
} catch (ErrorEvent e) {
+ originalError = e;
}
+ int retVals = 0;
try {
// evaluate again without the return()
- int retVals = luaEval(_luaState, trimmedExpr);
+ retVals = luaEval(_luaState, trimmedExpr);
+ } catch (ErrorEvent e) {
+ throw originalError; // we will assume syntax error and throw
+ }
+ if (retVals == 0)
+ throw originalError; // we will assume syntax error and throw
+
+
+ try {
if (retVals == 1) {
data = getLuaAsData(_luaState, luabridge::LuaRef::fromStack(_luaState, -1));
}
lua_pop(_luaState, retVals);
return data;
+
+ } catch (ErrorEvent e) {
+ throw e; // we will assume syntax error and throw
+ }
- } catch (ErrorEvent e) {
- throw e; // we will assume syntax error and throw
- }
return data;
}
@@ -583,4 +595,4 @@ std::string LuaDataModel::andExpressions(std::list<std::string> exprs) {
}
-} \ No newline at end of file
+}