Merge changes I52982071,I07091df4,Iba835038,I1e208001,Ib24c6652, ...

* changes:
  Remove unused exception
  Remove useless check in lyNodesToTree
  Remove unused constructor
  Add test for identityref invalid module
  Move all pretty printers to pretty_printers.hpp
  tests: Fix yang if-feature enum test
diff --git a/src/ast_commands.hpp b/src/ast_commands.hpp
index 9c56d4f..4235af5 100644
--- a/src/ast_commands.hpp
+++ b/src/ast_commands.hpp
@@ -142,7 +142,7 @@
         /> get
         /> get /module:path)";
     bool operator==(const get_& b) const;
-    boost::optional<boost::variant<dataPath_, schemaPath_, module_>> m_path;
+    boost::optional<boost::variant<dataPath_, module_>> m_path;
 };
 
 struct describe_ : x3::position_tagged {
diff --git a/src/interpreter.cpp b/src/interpreter.cpp
index 80e7a7a..cfd0a5d 100644
--- a/src/interpreter.cpp
+++ b/src/interpreter.cpp
@@ -47,10 +47,10 @@
         if (value.type() == typeid(special_) && boost::get<special_>(value).m_value == SpecialValue::LeafList) {
             auto leafListPrefix = path;
             std::cout << path << " = " << leafDataToString(value) << std::endl;
-            ++it;
-            while (boost::starts_with(it->first, leafListPrefix)) {
-                std::cout << stripLeafListValueFromPath(it->first) << " = " << leafDataToString(it->second) << std::endl;
+
+            while (it + 1 != items.end() && boost::starts_with((it + 1) ->first, leafListPrefix)) {
                 ++it;
+                std::cout << stripLeafListValueFromPath(it->first) << " = " << leafDataToString(it->second) << std::endl;
             }
         } else {
             std::cout << path << " = " << leafDataToString(value) << std::endl;