22#include <boost/phoenix/core.hpp>
23#include <boost/phoenix/operator.hpp>
24#include <boost/phoenix/fusion.hpp>
25#include <boost/phoenix/bind.hpp>
29 template <
typename Iterator>
36 typedef function<error_handler<Iterator> > error_handler_function;
41 qi::lexeme_type lexeme;
45 qi::short_type short_;
54 | lexeme[(alpha | char_(
"@:#+-%._$&/")) >> *(alnum | char_(
"@:#+-%._$&/"))];
55 units %= lexeme[alpha >> *(alpha |
'/')]
112 lit(
"&array")[_pass = complainArray]
115 BOOST_SPIRIT_DEBUG_NODES(
119 on_error<fail>(
start,
120 error_handler_function(_error_handler)(
121 std::string(
"Error! Expecting "), _4, _3));
qi::rule< Iterator, std::string(), skipper< Iterator > > array_format
qi::rule< Iterator, array(), skipper< Iterator > > start
qi::rule< Iterator, std::string(), skipper< Iterator > > array_symbol
qi::rule< Iterator, ast::nil(), skipper< Iterator > > array_unsupported_post
qi::rule< Iterator, ast::nil(), skipper< Iterator > > array_unsupported_pre
qi::rule< Iterator, long(), skipper< Iterator > > array_dimensions
array_parser(error_handler< Iterator > &_error_handler)
qi::rule< Iterator, std::string(), skipper< Iterator > > array_description
qi::rule< Iterator, std::string(), skipper< Iterator > > quoted_string
qi::rule< Iterator, std::string(), skipper< Iterator > > array_units
qi::rule< Iterator, std::string(), skipper< Iterator > > array_name
qi::symbols< char, ast::datatype > arraytype
qi::rule< Iterator, std::string(), skipper< Iterator > > units
qi::rule< Iterator, std::string(), skipper< Iterator > > array_group
qi::rule< Iterator, std::string(), skipper< Iterator > > string
qi::rule< Iterator, ast::datatype, skipper< Iterator > > array_type
qi::rule< Iterator, long(), skipper< Iterator > > array_field