Get rid of m_topLevelModulePresent

This is a remnant from the old-style path parsing, where I parsed
modules separately from node identifiers. Right now, I parse them at the
same time, so I don't need a flag signifying whether the top level
module is present. Also, the node_identifier_class code was a part of a
bug fixed in a later patch.

Change-Id: Ibc28f3871456f0944b73829e524dc379569e3b1e
diff --git a/src/ast_handlers.hpp b/src/ast_handlers.hpp
index 0ab9a35..7d38d73 100644
--- a/src/ast_handlers.hpp
+++ b/src/ast_handlers.hpp
@@ -44,19 +44,7 @@
     }
 };
 
-struct node_identifier_class {
-    template <typename T, typename Iterator, typename Context>
-    void on_success(Iterator const&, Iterator const&, T&, Context const& context)
-    {
-        auto& parserContext = x3::get<parser_context_tag>(context);
-
-        if (!parserContext.m_topLevelModulePresent) {
-            if (parserContext.m_errorMsg.empty())
-                parserContext.m_errorMsg = "You have to specify a top level module.";
-            _pass(context) = false;
-        }
-    }
-};
+struct node_identifier_class;
 
 struct key_identifier_class {
     template <typename T, typename Iterator, typename Context>
@@ -130,7 +118,6 @@
 
         if (schema.isModule(ast.m_name)) {
             parserContext.m_curModule = ast.m_name;
-            parserContext.m_topLevelModulePresent = true;
         } else {
             parserContext.m_errorMsg = "Invalid module name.";
             _pass(context) = false;