Added percent-encoding to URL parser

Reference:
https://tools.ietf.org/html/rfc1738
This commit is contained in:
Michael Krasnyk
2016-11-06 19:13:45 +01:00
committed by Patrick Niklaus
parent 2fb40944bf
commit 3e18e31bc9
2 changed files with 15 additions and 1 deletions
+3 -1
View File
@@ -27,7 +27,8 @@ struct URLParser final : qi::grammar<Iterator, Into>
using boost::spirit::repository::qi::iter_pos;
alpha_numeral = qi::char_("a-zA-Z0-9");
polyline_chars = qi::char_("a-zA-Z0-9_.--[]{}@?|\\%~`^");
percent_encoding = qi::char_('%') > qi::uint_parser<char, 16, 2, 2>()[qi::_val = qi::_1];
polyline_chars = qi::char_("a-zA-Z0-9_.--[]{}@?|\\~`^") | percent_encoding;
all_chars = polyline_chars | qi::char_("=,;:&().");
service = +alpha_numeral;
@@ -55,6 +56,7 @@ struct URLParser final : qi::grammar<Iterator, Into>
qi::rule<Iterator, char()> alpha_numeral;
qi::rule<Iterator, char()> all_chars;
qi::rule<Iterator, char()> polyline_chars;
qi::rule<Iterator, char()> percent_encoding;
};
} // anon.