102namespace SDDS {
namespace parser
104 namespace qi = boost::spirit::qi;
105 namespace ascii = boost::spirit::ascii;
106 namespace phx = boost::phoenix;
108 template <
typename Iterator>
109 struct data_parser: qi::grammar<Iterator, data(), skipper<Iterator> >
111 data_parser(error_handler<Iterator> & _error_handler);
113 qi::rule<Iterator, data(), skipper<Iterator> > start;
114 qi::rule<Iterator, ast::datamode(), skipper<Iterator> > data_mode;
115 qi::rule<Iterator, long(), skipper<Iterator> > data_lines,
116 data_row, data_fixed, data_additional;
117 qi::rule<Iterator, short(), skipper<Iterator> > data_column;
118 qi::rule<Iterator, ast::endianess(), skipper<Iterator> > data_endian;
119 qi::rule<Iterator, ast::nil(), skipper<Iterator> > data_unsupported_pre,
120 data_unsupported_post;
121 qi::symbols<char, ast::endianess> dataendian;
122 qi::symbols<char, ast::datamode> datamode;