diff options
Diffstat (limited to 'src/core/parser/ParserScope.hpp')
-rw-r--r-- | src/core/parser/ParserScope.hpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/core/parser/ParserScope.hpp b/src/core/parser/ParserScope.hpp index 24af6b8..e27c81e 100644 --- a/src/core/parser/ParserScope.hpp +++ b/src/core/parser/ParserScope.hpp @@ -286,7 +286,13 @@ enum class ParserFlag { * Set to the boolean value "true" if the head section of a file has passed. * This happens once the first non-import tag is reached. */ - POST_HEAD + POST_HEAD, + + /** + * Set to the boolean value "true" if explicit fields may no longer be + * defined inside a structure element. + */ + POST_EXPLICIT_FIELDS }; /** @@ -423,9 +429,14 @@ public: void push(Handle<Node> node); /** - * Removes the last pushed node from the scope. + * Removes the last pushed node from the scope. If the node that is popped + * from the internal stack is a RootNode, pending resolutions are performed + * and the RootNode is validated. + * + * @param logger is the Logger instance to which error messages should be + * logged. */ - void pop(); + void pop(Logger &logger); /** * Returns the top-level nodes. These are the nodes that are pushed onto the @@ -792,6 +803,7 @@ public: bool resolveFieldDescriptor(const std::string &name, Handle<Node> owner, Logger &logger, ResolutionResultCallback resultCallback); + /** * Tries to resolve all currently deferred resolution steps. The list of * pending deferred resolutions is cleared after this function has run. |