Move rule tag definitions
Spirit's x3::rule needs some class type so that it can recognize rules.
This class can have some on_success handler which adds some more logic
to the parser. However, some of the classes don't have on_success
handlers. That means that they can be directly declared in the
x3::rule's definition. This indicates that the reader of the code
doesn't have to search for the definition (and check whether there's an
on_success handler).
I'm pretty sure that this can't really be enforced, so really, it's just
a convention.
Change-Id: Ib6e5e76174ad19737242dd8c074a0bbc867e195c
diff --git a/src/common_parsers.hpp b/src/common_parsers.hpp
index d51f9b8..14a2755 100644
--- a/src/common_parsers.hpp
+++ b/src/common_parsers.hpp
@@ -13,10 +13,10 @@
auto const completing = x3::rule<completing_class, x3::unused_type>{"completing"} =
x3::eps;
-auto const node_identifier = x3::rule<node_identifier_class, std::string>{"node_identifier"} =
+auto const node_identifier = x3::rule<struct node_identifier_class, std::string>{"node_identifier"} =
((x3::alpha | x3::char_("_")) >> *(x3::alnum | x3::char_("_") | x3::char_("-") | x3::char_(".")));
-auto const module_identifier = x3::rule<module_identifier_class, std::string>{"module_identifier"} =
+auto const module_identifier = x3::rule<struct module_identifier_class, std::string>{"module_identifier"} =
((x3::alpha | x3::char_("_")) >> *(x3::alnum | x3::char_("_") | x3::char_("-") | x3::char_(".")));
auto const module = x3::rule<module_class, module_>{"module"} =