22 #ifndef _PARSE_INFO_PARSER_HPP 23 #define _PARSE_INFO_PARSER_HPP 39 (
unsigned int, column)
49 struct use_terminal<qi::domain, pip::tag::pinfo>
57 : boost::spirit::qi::primitive_parser<pinfo_parser>
60 template <
typename Context,
typename Iterator>
67 template <
typename WrappedIterator,
typename Context
68 ,
typename Skipper,
typename Attribute>
69 bool parse(classic::position_iterator2<WrappedIterator>& first, classic::position_iterator2<WrappedIterator>
const& last
70 , Context&, Skipper
const& skipper, Attribute&
attr)
const 72 boost::spirit::qi::skip_over(first, last, skipper);
74 const classic::file_position_base<std::string>& pos = first.get_position();
76 boost::spirit::traits::assign_to(
ParseInfo(pos.file, pos.column, pos.line, first.get_currentline()), attr);
82 template <
typename Context>
83 boost::spirit::info
what(Context&)
const 85 return boost::spirit::info(
"pinfo_parser");
95 template <
typename Modifiers>
96 struct make_primitive<
pip::tag::pinfo, Modifiers>
102 return result_type();
BOOST_FUSION_ADAPT_STRUCT(ParseInfo,(string, sourceline)(unsigned int, column)(unsigned int, line)(string, linecontent))
BOOST_SPIRIT_TERMINAL(pinfo)
boost::spirit::info what(Context &) const
result_type operator()(unused_type, unused_type) const
bool parse(classic::position_iterator2< WrappedIterator > &first, classic::position_iterator2< WrappedIterator > const &last, Context &, Skipper const &skipper, Attribute &attr) const
pip::pinfo_parser result_type