summaryrefslogtreecommitdiff
path: root/src/core/parser/stack/DocumentHandler.hpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-04-01 00:10:04 +0200
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2016-04-25 22:19:28 +0200
commite921e0965257e69221e67070d7eadd8a2aeaae76 (patch)
treededa8b88763919fcb2a0e5dd403b2a900af55d2b /src/core/parser/stack/DocumentHandler.hpp
parentadf031f1ce3891635d7c3af2bb2f3e90de52c6ca (diff)
First implementation of user defined syntax, many features still missing and probably many bugs
* Implement startToken and endToken in DocumentChildHandler * Implement pushScopeToken, which pushes tokens for the element that is currently on top of the Scope stack onto the token stack * Implement rollbackPath() method (was really needed once in the development process, but only used in one place for now) * Push and pop tokens from stack whenever a new explicit field or command is created/ended. Take advantage of the fact, that the tokens for transparent structures are always included in the token list * Remember pending close tokens in the HandlerInfo structure in StackImpl * Implement handleToken() in StackImpl * Implement readToken() method used by readData() and data() in StackImpl * Check whether there still is data available in handleData() * Plus many more changes in the affected files...
Diffstat (limited to 'src/core/parser/stack/DocumentHandler.hpp')
-rw-r--r--src/core/parser/stack/DocumentHandler.hpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/parser/stack/DocumentHandler.hpp b/src/core/parser/stack/DocumentHandler.hpp
index 5157709..0a32267 100644
--- a/src/core/parser/stack/DocumentHandler.hpp
+++ b/src/core/parser/stack/DocumentHandler.hpp
@@ -159,6 +159,12 @@ private:
DocumentEntity *&parent);
/**
+ * Removes the transparent elements created by the createPath() method from
+ * the Scope.
+ */
+ void rollbackPath();
+
+ /**
* Tries to convert the given data to the type that is specified in the
* given primitive field.
*
@@ -174,6 +180,17 @@ private:
Logger &logger);
/**
+ * Fetches the top-most non-transparent descriptor from the scope, gets the
+ * permitted tokens of this descriptor and filters them to those tokens
+ * which are actually possible, according to the current content of the
+ * ParserScope.
+ *
+ * @param fieldDescr is the field descriptor of which the tokens should be
+ * registered.
+ */
+ void pushScopeTokens();
+
+ /**
* Pushes a new DocumentField onto the scope stack and registers all
* premitted tokens in the parser.
*/