Fix ParserContext flag not properly resetting

The m_topLevelModulePresent was not being properly reset when the
starting slash of an absolute path was parsed. For example:
/ietf-interfaces:interfaces> cd /i
failed when trying to parse the "i". The parser thought that a
top-level module was present, while, in fact, "/i" doesn't have a
top-level module present. The flag is now properly being reset when
parsing the starting slash of an absolute path.

Bug: https://tree.taiga.io/project/jktjkt-netconf-cli/issue/99
Change-Id: If5144cffcf55acbf869cf24a907d2c8c174724bd
diff --git a/src/ast_handlers.hpp b/src/ast_handlers.hpp
index a34f6c4..b32330e 100644
--- a/src/ast_handlers.hpp
+++ b/src/ast_handlers.hpp
@@ -237,6 +237,7 @@
     {
         auto& parserContext = x3::get<parser_context_tag>(context);
         parserContext.m_curPath.m_nodes.clear();
+        parserContext.m_topLevelModulePresent = false;
     }
 };
 
diff --git a/tests/ls.cpp b/tests/ls.cpp
index 3e8fd52..60e4b43 100644
--- a/tests/ls.cpp
+++ b/tests/ls.cpp
@@ -174,6 +174,13 @@
             SECTION("ls /example:nonexistent")
                 input = "ls /example:nonexistent";
 
+            SECTION("ls /exa")
+            {
+                SECTION("cwd: /") {}
+                SECTION("cwd: /example:a") { parser.changeNode(dataPath_{Scope::Relative, {dataNode_(module_{"example"}, container_{"a"})}}); }
+                input = "ls /exa";
+            }
+
             SECTION("ls /bad:nonexistent")
                 input = "ls /bad:nonexistent";