summaryrefslogtreecommitdiff
path: root/src/core/common
diff options
context:
space:
mode:
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_-]*)*