9 #ifndef DESCRIPTION_HPP_
10 #define DESCRIPTION_HPP_
16 #include <boost/config/warning_disable.hpp>
17 #include <boost/spirit/include/qi.hpp>
18 #include <boost/fusion/include/adapt_struct.hpp>
19 #include <boost/optional.hpp>
21 #define BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
22 #define BOOST_SPIRIT_QI_DEBUG
33 if (desc.
text_m) out <<
"text = " << *desc.
text_m <<
", ";
41 (boost::optional<std::string>, text_m)
42 (boost::optional<std::string>, content_m)
45 namespace SDDS {
namespace parser
47 namespace qi = boost::spirit::qi;
48 namespace ascii = boost::spirit::ascii;
49 namespace phx = boost::phoenix;
51 template <
typename Iterator>
52 struct description_parser: qi::grammar<Iterator, description(), skipper<Iterator> >
54 description_parser(error_handler<Iterator> & _error_handler);
56 qi::rule<Iterator, description(), skipper<Iterator> > start;
57 qi::rule<Iterator, std::string(), skipper<Iterator> > quoted_string,
58 description_text, description_content;
boost::optional< std::string > text_m
BOOST_FUSION_ADAPT_STRUCT(SDDS::column,(boost::optional< std::string >, name_m)(boost::optional< SDDS::ast::datatype >, type_m)(boost::optional< std::string >, units_m)(boost::optional< std::string >, description_m)(SDDS::ast::variant_t, value_m)) namespace SDDS
boost::optional< std::string > content_m
std::ostream & operator<<(std::ostream &out, const array &)