1 // Boost.Geometry (aka GGL, Generic Geometry Library)
3 // Copyright (c) 2010-2013 Barend Gehrels, Amsterdam, the Netherlands.
4 // Copyright (c) 2012-2013 Adam Wulkiewicz, Lodz, Poland.
5 // Use, modification and distribution is subject to the Boost Software License,
6 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
10 #ifndef DOXYGEN_ELEMENTS_HPP
11 #define DOXYGEN_ELEMENTS_HPP
18 enum markup_type { markup_default, markup_synopsis };
19 enum markup_order_type { markup_any, markup_before, markup_after };
21 // TODO: rename, not all are functions
26 function_constructor_destructor,
34 std::string brief_description;
40 base_element(std::string const& n = "")
47 // contains (template)parameter
48 struct parameter : public base_element
51 std::string default_value; // for template parameters
52 std::string fulltype; // post-processed
53 std::string fulltype_without_links;
56 struct enumeration_value : public base_element
58 std::string initializer;
66 markup_order_type order;
69 markup(std::string const& v = "")
72 , type(markup_default)
77 markup(markup_order_type o, markup_type t, std::string const& v = "")
88 boost::replace_all(value, "\\*", "*");
98 // Base of a class/struct, function, define
99 struct element : public base_element
101 std::string detailed_description;
102 std::string location;
103 int line; // To sort - Doxygen changes order - we change it back
106 // Filled with e.g.: \qbk([include reference/myqbk.qbk]}
107 std::vector<markup> qbk_markup;
109 // To distinguish overloads: unary, binary etc,
110 // Filled with: \qbk{distinguish,<A discerning description>}
111 std::string additional_description;
113 std::vector<parameter> template_parameters;
114 std::vector<parameter> parameters;
116 std::vector<paragraph> paragraphs;
126 struct function : public element
129 std::string definition, argsstring;
130 std::string return_type, return_description;
131 std::string precondition;
133 std::string return_type_without_links;
135 bool is_static, is_const, is_explicit, is_virtual;
138 : type(function_unknown)
140 , is_static(false), is_const(false), is_explicit(false), is_virtual(false)
146 struct enumeration : public element
148 std::vector<enumeration_value> enumeration_values;
155 std::string derivation; // "prot" element
156 std::string virtuality; // "virt" element
159 struct class_or_struct : public element
161 bool is_class; // true if class, false if struct
162 std::string name, fullname;
163 std::vector<function> functions;
165 std::vector<base_element> typedefs;
166 std::vector<parameter> variables;
168 std::vector<base_class> base_classes;
174 std::string group_id;
175 std::string group_title;
177 // Only one expected (no grouping)
180 // There can be many of them (in groups):
181 std::vector<function> functions;
182 std::vector<function> defines;
183 std::vector<enumeration> enumerations;
187 #endif // DOXYGEN_ELEMENTS_HPP