summaryrefslogtreecommitdiff
path: root/src/core/common
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-14 22:45:19 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-15 00:13:22 +0100
commit9acab70815a0f62bdaf2c7f01e588066b818d330 (patch)
tree2f2342f8c2e4783c0f30afe68cfe231fbd09e80a /src/core/common
parentbe1ff95016b033c6017cd79b21bae87cc9d885df (diff)
Fixed isIdentifier and isNamespacedIdentifier, added and used isIdentifierOrEmpty for use in Node
Diffstat (limited to 'src/core/common')
-rw-r--r--src/core/common/Utils.cpp13
-rw-r--r--src/core/common/Utils.hpp5
2 files changed, 14 insertions, 4 deletions
diff --git a/src/core/common/Utils.cpp b/src/core/common/Utils.cpp
index fc8ee00..f8b53c6 100644
--- a/src/core/common/Utils.cpp
+++ b/src/core/common/Utils.cpp
@@ -37,22 +37,27 @@ bool Utils::isIdentifier(const std::string &name)
}
first = false;
}
- return true;
+ return !first;
}
-bool Utils::isNamespaceIdentifier(const std::string &name)
+bool Utils::isIdentifierOrEmpty(const std::string &name)
+{
+ return name.empty() || isIdentifier(name);
+}
+
+bool Utils::isNamespacedIdentifier(const std::string &name)
{
bool first = true;
for (char c : name) {
if (first && !isIdentifierStartCharacter(c)) {
return false;
}
- if (!first && (!isIdentifierCharacter(c) || c == ':')) {
+ if (!first && (!isIdentifierCharacter(c) && c != ':')) {
return false;
}
first = (c == ':');
}
- return true;
+ return !first;
}
bool Utils::hasNonWhitepaceChar(const std::string &s)
diff --git a/src/core/common/Utils.hpp b/src/core/common/Utils.hpp
index b5cd178..b5a54fc 100644
--- a/src/core/common/Utils.hpp
+++ b/src/core/common/Utils.hpp
@@ -86,6 +86,11 @@ public:
static bool isIdentifier(const std::string &name);
/**
+ * Returns true if the given string is an identifier or an empty string.
+ */
+ static bool isIdentifierOrEmpty(const std::string &name);
+
+ /**
* Returns true if the given string is in
* \code{.txt}
* ([A-Za-z][A-Za-z0-9_-]*)(:[A-Za-z][A-Za-z0-9_-]*)*