10 #define ASSOCIATE_HPP_
16 #include <boost/config/warning_disable.hpp>
17 #include <boost/spirit/include/qi.hpp>
18 #include <boost/spirit/include/phoenix_core.hpp>
19 #include <boost/spirit/include/phoenix_operator.hpp>
20 #include <boost/spirit/include/phoenix_fusion.hpp>
21 #include <boost/spirit/include/phoenix_bind.hpp>
22 #include <boost/fusion/include/adapt_struct.hpp>
26 #define BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
27 #define BOOST_SPIRIT_QI_DEBUG
41 template <attributes A>
46 std::string attributeString;
50 attributeString =
"name";
53 attributeString =
"filename";
56 attributeString =
"path";
59 attributeString =
"description";
62 attributeString =
"contents";
65 attributeString =
"sdds";
68 attributeString =
"associate";
73 std::cerr << attributeString <<
" not supported yet" <<
std::endl;
86 namespace SDDS {
namespace parser
88 namespace qi = boost::spirit::qi;
89 namespace ascii = boost::spirit::ascii;
90 namespace phx = boost::phoenix;
92 template <
typename Iterator>
97 qi::rule<Iterator, associate(), skipper<Iterator> >
start;
qi::rule< Iterator, std::string(), skipper< Iterator > > string
qi::rule< Iterator, long(), skipper< Iterator > > associate_sdds
qi::rule< Iterator, std::string(), skipper< Iterator > > associate_path
qi::rule< Iterator, std::string(), skipper< Iterator > > associate_name
qi::rule< Iterator, std::string(), skipper< Iterator > > associate_filename
qi::rule< Iterator, associate(), skipper< Iterator > > start
qi::rule< Iterator, std::string(), skipper< Iterator > > quoted_string
qi::rule< Iterator, std::string(), skipper< Iterator > > associate_contents
qi::rule< Iterator, ast::nil(), skipper< Iterator > > associate_unsupported_post
qi::rule< Iterator, std::string(), skipper< Iterator > > associate_description
associate_parser(error_handler< Iterator > &_error_handler)
std::ostream & operator<<(std::ostream &out, const array &)
qi::rule< Iterator, ast::nil(), skipper< Iterator > > associate_unsupported_pre
Inform & endl(Inform &inf)