diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-03-04 15:45:44 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2015-03-04 15:45:44 +0100 |
commit | d30bd65ce9e2675ab1cf353da35fd673babb518a (patch) | |
tree | 2f98bd8ed368af7e30dedb90608b269d86c3fb14 | |
parent | 7b438c79af5450acc927add8ea8007aa25f7e691 (diff) |
Fixed whitespace tag and some error messages
-rw-r--r-- | src/core/parser/stack/OntologyHandler.cpp | 26 | ||||
-rw-r--r-- | src/core/parser/stack/OntologyHandler.hpp | 6 |
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}; } }; |