owlcpp  v0.3.3~
C++ library for working with OWL ontologies
 All Classes Namespaces Files Functions Macros Pages
node_iri_tag_gen_macro.hpp
Go to the documentation of this file.
1 
6 #ifndef NODE_IRI_TAG_GEN_MACRO_HPP_
7 #define NODE_IRI_TAG_GEN_MACRO_HPP_
8 #include "boost/preprocessor/arithmetic/add.hpp"
9 #include "boost/preprocessor/seq/elem.hpp"
10 #include "boost/preprocessor/facilities/empty.hpp"
11 #include "boost/preprocessor/stringize.hpp"
12 #include "boost/preprocessor/seq/for_each_i.hpp"
13 #include "boost/preprocessor/seq/reverse.hpp"
14 
17 
18 #define OWLCPP_NODE_TAG_TYPE_MACRO_(r, n0, i, e) \
19 OWLCPP_NODE_TAG_TYPE( \
20  OWLCPP_NODE_TYPE_NAME(e), \
21  BOOST_PP_SEQ_ELEM(0,e), \
22  BOOST_PP_STRINGIZE(BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(e))), \
23  BOOST_PP_ADD(n0,i) \
24 ); \
25 BOOST_PP_EMPTY() \
26 /* */
27 
28 
37 #define OWLCPP_GENERATE_NODE_TAGS(seq, n0) \
38  BOOST_PP_SEQ_FOR_EACH_I(OWLCPP_NODE_TAG_TYPE_MACRO_, n0, seq)
39 
40 #endif /* NODE_IRI_TAG_GEN_MACRO_HPP_ */