summaryrefslogtreecommitdiff
path: root/src/core/parser/ParserScope.hpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-03 22:54:17 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-03 22:54:17 +0100
commitec6306ad1e746d47ed66af6274fb6710c70933a2 (patch)
treed00627f99142e62f98894861673a91e14c6eb834 /src/core/parser/ParserScope.hpp
parent7a8a8a31416cfebf785135754035608f4d919bf5 (diff)
Fixed XML-Importer failing
Diffstat (limited to 'src/core/parser/ParserScope.hpp')
-rw-r--r--src/core/parser/ParserScope.hpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/core/parser/ParserScope.hpp b/src/core/parser/ParserScope.hpp
index dc1b1bf..7be3c4a 100644
--- a/src/core/parser/ParserScope.hpp
+++ b/src/core/parser/ParserScope.hpp
@@ -145,6 +145,33 @@ public:
/**
* Ascends in the stack starting with the leaf node, returns the first node
+ * that matches the type given in the RttiSet or nullptr if none matches.
+ *
+ * @param types is a set of Rtti types for which should be searched in the
+ * stack.
+ * @param maxDepth is the maximum number of stack entries the selection
+ * function may ascend. A negative value indicates no limitation.
+ * @return the matching node or nullptr if the node was not found.
+ */
+ Rooted<Node> select(RttiSet types, int maxDepth = -1);
+
+ /**
+ * Ascends in the stack starting with the leaf node, returns the first node
+ * that matches the given type or nullptr if none matches.
+ *
+ * @tparam T is the type that should be searched in the stack.
+ * @param maxDepth is the maximum number of stack entries the selection
+ * function may ascend. A negative value indicates no limitation.
+ * @return the matching node or nullptr if the node was not found.
+ */
+ template <class T>
+ Rooted<T> select(int maxDepth = -1)
+ {
+ return select(RttiSet{&typeOf<T>()}, maxDepth).cast<T>();
+ }
+
+ /**
+ * Ascends in the stack starting with the leaf node, returns the first node
* that matches the type given in the RttiSet. Throws an exception if no
* node matches.
*
@@ -154,7 +181,7 @@ public:
* function may ascend. A negative value indicates no limitation.
* @return the matching node.
*/
- Rooted<Node> select(RttiSet types, int maxDepth = -1);
+ Rooted<Node> selectOrThrow(RttiSet types, int maxDepth = -1);
/**
* Ascends in the stack starting with the leaf node, returns the first node
@@ -166,9 +193,9 @@ public:
* @return the matching node.
*/
template <class T>
- Rooted<T> select(int maxDepth = -1)
+ Rooted<T> selectOrThrow(int maxDepth = -1)
{
- return select(RttiSet{&typeOf<T>()}, maxDepth).cast<T>();
+ return selectOrThrow(RttiSet{&typeOf<T>()}, maxDepth).cast<T>();
}
};