Add support for identityref data type

Change-Id: I369150b83d86a4c22fadf383ee011eee619a4c15
diff --git a/src/ast_values.hpp b/src/ast_values.hpp
index b9053c0..350fc8d 100644
--- a/src/ast_values.hpp
+++ b/src/ast_values.hpp
@@ -7,6 +7,7 @@
 */
 #pragma once
 
+#include <boost/optional.hpp>
 #include <boost/variant.hpp>
 
 struct enum_ {
@@ -23,8 +24,23 @@
     std::string m_value;
 };
 
+struct module_ {
+    bool operator==(const module_& b) const;
+    std::string m_name;
+};
+
+struct identityRef_ {
+    identityRef_();
+    identityRef_(const std::string& module, const std::string& value);
+    identityRef_(const std::string& value);
+    bool operator==(const identityRef_& b) const;
+    boost::optional<module_> m_prefix;
+    std::string m_value;
+};
+
 using leaf_data_ = boost::variant<enum_,
                                   binary_,
+                                  identityRef_,
                                   double,
                                   bool,
                                   int32_t,