summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/parser/stack/OntologyHandler.cpp26
-rw-r--r--src/core/parser/stack/OntologyHandler.hpp6
2 files changed, 15 insertions, 17 deletions
diff --git a/src/core/parser/stack/OntologyHandler.cpp b/src/core/parser/stack/OntologyHandler.cpp
index 24a1c31..0a33c97 100644
--- a/src/core/parser/stack/OntologyHandler.cpp
+++ b/src/core/parser/stack/OntologyHandler.cpp
@@ -482,8 +482,8 @@ bool OntologyOpenCloseShortHandler::data()
std::string("Given token \"") + str.asString() +
std::string(
"\" is not a valid user defined token (no whitespaces, "
- "must start and end with a non-alphabetic character, must "
- "not override OSML tokens)."));
+ "must start and end with a non-alphanumeric character, "
+ "must not override OSML tokens)."));
*descr = TokenDescriptor();
}
return true;
@@ -544,15 +544,9 @@ bool OntologySyntaxTokenHandler::startCommand(Variant::mapType &args)
return true;
}
-/* Class OntologySyntaxWhitespaceHandler */
+/* Class OntologyWhitespaceHandler */
-OntologySyntaxWhitespaceHandler::OntologySyntaxWhitespaceHandler(
- const HandlerData &handlerData)
- : StaticHandler(handlerData), whitespaceModeStr("")
-{
-}
-
-bool OntologySyntaxWhitespaceHandler::startCommand(Variant::mapType &args)
+bool OntologyWhitespaceHandler::startCommand(Variant::mapType &args)
{
// Fetch the field descriptor, log an error if "whitespace" was not
// specified inside a field descriptor
@@ -566,7 +560,7 @@ bool OntologySyntaxWhitespaceHandler::startCommand(Variant::mapType &args)
return true;
}
-bool OntologySyntaxWhitespaceHandler::data()
+bool OntologyWhitespaceHandler::data()
{
if (whitespaceModeStr != nullptr) {
logger().error(
@@ -579,9 +573,12 @@ bool OntologySyntaxWhitespaceHandler::data()
return true;
}
-void OntologySyntaxWhitespaceHandler::end()
+void OntologyWhitespaceHandler::end()
{
// Make sure the given whitespace mode is valid
+ if (whitespaceModeStr == nullptr) {
+ whitespaceModeStr = "";
+ }
const std::string &mode = whitespaceModeStr.asString();
Rooted<FieldDescriptor> field = scope().selectOrThrow<FieldDescriptor>();
if (mode == "trim") {
@@ -701,7 +698,8 @@ const State OntologyStructParentFieldRef =
const State OntologySyntax =
StateBuilder()
- .parents({&OntologyStruct, &OntologyField, &OntologyAnnotation})
+ .parents({&OntologyStruct, &OntologyField, &OntologyStructPrimitive,
+ &OntologyAnnotation})
.createdNodeType(&RttiTypes::ParserSyntaxNode)
.elementHandler(OntologySyntaxHandler::create)
.arguments(Arguments{});
@@ -737,7 +735,7 @@ const State OntologySyntaxShort =
const State OntologySyntaxWhitespace =
StateBuilder()
.parent(&OntologySyntax)
- .elementHandler(OntologySyntaxHandler::create)
+ .elementHandler(OntologyWhitespaceHandler::create)
.arguments(Arguments{});
}
}
diff --git a/src/core/parser/stack/OntologyHandler.hpp b/src/core/parser/stack/OntologyHandler.hpp
index 0203805..b91e594 100644
--- a/src/core/parser/stack/OntologyHandler.hpp
+++ b/src/core/parser/stack/OntologyHandler.hpp
@@ -223,9 +223,9 @@ public:
}
};
-class OntologySyntaxWhitespaceHandler : public StaticHandler {
+class OntologyWhitespaceHandler : public StaticHandler {
public:
- OntologySyntaxWhitespaceHandler(const HandlerData &handlerData);
+ using StaticHandler::StaticHandler;
Variant whitespaceModeStr;
@@ -235,7 +235,7 @@ public:
static Handler *create(const HandlerData &handlerData)
{
- return new OntologySyntaxWhitespaceHandler{handlerData};
+ return new OntologyWhitespaceHandler{handlerData};
}
};