28 #include <boost/algorithm/string.hpp>
29 #include <boost/spirit/include/phoenix.hpp>
30 #include<pni/core/types.hpp>
31 #include<pni/core/error.hpp>
34 #include "../exceptions.hpp"
55 typedef pni::core::string
type;
69 template<
typename Arg>
72 pni::core::string output(n.begin(),n.end());
109 boost::spirit::qi::rule<ITERT>
stop_;
117 boost::phoenix::function<trim_string>
trim;
133 delimiter_ = +qi::blank;
157 delimiter_ = +qi::blank;
159 delimiter_ = qi::char_(del);
184 start_ = qi::char_(start)>*qi::blank;
185 stop_ = *qi::blank>qi::char_(stop);
186 delimiter_ = +qi::blank;
187 element_rule_ = (+(qi::char_-(qi::lit(stop)|qi::blank)))[_val=
trim(_1)];
188 sequence_ = start_> (element_rule_ %
delimiter_)>stop_;
206 start_ = qi::char_(start)>*qi::blank;
207 stop_ = *qi::blank>qi::char_(stop);
210 delimiter_ = +qi::blank;
212 delimiter_ = qi::char_(del);
214 element_rule_ = (*(qi::char_-(qi::lit(stop)|
delimiter_)))[qi::_val =
216 sequence_ = start_>(element_rule_ %
delimiter_)>stop_;
string_sequence_rule(char del)
constructor
Definition: string_sequence_rule.hpp:149
boost::spirit::qi::rule< ITERT > delimiter_
rule for the delimiter symbol for the sequence
Definition: string_sequence_rule.hpp:111
boost::spirit::qi::rule< ITERT > stop_
rule for the stop symbol for the sequence
Definition: string_sequence_rule.hpp:109
boost::phoenix::function< trim_string > trim
lazy function to trim the read string
Definition: string_sequence_rule.hpp:117
string_sequence_rule()
default constructor
Definition: string_sequence_rule.hpp:127
container parser
Definition: string_sequence_rule.hpp:102
Definition: spirit_container_traits.hpp:33
Definition: cbf_reader.hpp:41
boost::spirit::qi::rule< ITERT, ST()> sequence_
the full rule to parse the sequence
Definition: string_sequence_rule.hpp:114
return type of the lazy function
Definition: string_sequence_rule.hpp:53
lazy string trimming
Definition: string_sequence_rule.hpp:48
string_sequence_rule(char start, char stop, char del)
constructor
Definition: string_sequence_rule.hpp:202
boost::spirit::qi::rule< ITERT, pni::core::string()> element_rule_
rule to parse a single element of the sequence
Definition: string_sequence_rule.hpp:105
boost::spirit::qi::rule< ITERT > start_
rule for the start symbol of the sequence
Definition: string_sequence_rule.hpp:107
string_sequence_rule(char start, char stop)
constructor
Definition: string_sequence_rule.hpp:177
pni::core::string operator()(Arg const &n) const
trim implementation
Definition: string_sequence_rule.hpp:70
pni::core::string type
return value
Definition: string_sequence_rule.hpp:55