Move enum_ and leaf_data_ to a separate header

Change-Id: Ia92f9707fb43d39a95bd58aff189aa2a9f7d24c4
diff --git a/src/ast_commands.hpp b/src/ast_commands.hpp
index d7d47c9..a27b09c 100644
--- a/src/ast_commands.hpp
+++ b/src/ast_commands.hpp
@@ -8,6 +8,7 @@
 #pragma once
 
 #include "ast_path.hpp"
+#include "ast_values.hpp"
 
 namespace x3 = boost::spirit::x3;
 namespace ascii = boost::spirit::x3::ascii;
@@ -48,20 +49,6 @@
     path_ m_path;
 };
 
-struct enum_ {
-    enum_();
-    enum_(const std::string& value);
-    bool operator==(const enum_& b) const;
-    std::string m_value;
-};
-
-using leaf_data_ = boost::variant<enum_,
-                                  double,
-                                  bool,
-                                  int32_t,
-                                  uint32_t,
-                                  std::string>;
-
 struct set_ : x3::position_tagged {
     bool operator==(const set_& b) const;
     path_ m_path;