Daniel J. Hofmann
1153b78c06
Fixes various compiler diagnostics
...
Found with LLVM 3.9.1 and then fixed the most severe categories.
2017-01-06 16:47:52 +01:00
Michael Krasnyk
3e18e31bc9
Added percent-encoding to URL parser
...
Reference:
https://tools.ietf.org/html/rfc1738
2016-11-07 14:16:51 +01:00
Patrick Niklaus
240a7696da
Catch boost bad_numeric_cast exception and let parser return an error
2016-10-11 00:04:53 +02:00
Patrick Niklaus
6e16eab6ec
Format with clang-format 3.8
2016-05-27 21:05:04 +02:00
Michael Krasnyk
5186b9490d
Fix syntax error position indicators in parameters queries
...
To fix #2193 prefix_length member variable has been added to ParsedURL
that is set to the length of "/service/version/profile/" prefix
when the prefix is accepted by the parser.
Also BOOST_FUSION_ADAPT_STRUCT for osrm::server::api::ParsedURL
has been moved from header to url_parser.cpp to speed up compilation
of CUs that do not use the fusion adaption.
2016-04-27 19:52:23 +02:00
Michael Krasnyk
dac2f93383
Refactoring of parameter garammars
...
* signature changed from void() to void(engine::api::Parameters&)
* performance increase due to use "static const GrammarT" and avoid
construction and destruction of grammars during parsing
* removed code duplication in inherited grammars
* rule unlimited changed to qi::lit
* added rule size_t_
* parser accepts "&geometries=" and "&overview=" and fails at "foo"
instead of "&geometries=foo" and &overview=foo
* added expectations checks for derived grammars
* changed rules qi::list(".") to character rules '.'
2016-04-23 21:15:21 +02:00
Daniel J. Hofmann
8a2bd09fd0
Adapts all grammars to use expectation parsers without backtracking.
...
Sequence parsers using `>>` allow for backtracking, expectation parsers
`>` do not. This allows us to properly report the position where parsing
failed, by catching the expectation_failure exception and adapting the
iterator ourselves.
References:
- https://github.com/Project-OSRM/osrm-backend/pull/2188
- https://github.com/Project-OSRM/osrm-backend/issues/2168
- http://www.boost.org/doc/libs/1_55_0/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
996a27dbd1
Report position where parsing failed; resolves #2168
2016-04-08 21:03:50 +02:00
Michael Krasnyk
cae06ba2c1
Fix type "osrm::server::api::ParsedURL ()"
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
221f70ac7b
Synthesize parser only once from DSL: static storage duration
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
d3dbca374d
Do not modify the end iterator for parameter parsing, too
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
6f0b6a8158
Re-factor URL parser: make grammar stateless
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
d27025003a
Do not move from references in grammar handlers
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
64cb134113
Align Spirit rules for URL parser
2016-04-08 21:03:50 +02:00
Daniel J. Hofmann
891ff7dd80
Do not modify the end iterator, make const
2016-04-08 21:03:50 +02:00
Patrick Niklaus
58fb633df3
Add support for tile plugin
2016-04-05 22:58:32 +02:00
Patrick Niklaus
d9d4742130
First round of lat,lng -> lng,lat switcheroo
2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
c59647ad2f
Fix grammar constraint and enable all plugin links
2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
a24de2d22a
Enforce parameter and grammar type to catch subtle bugs
2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
f452a3025d
Link parameters to grammars
2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
3c58eaf49f
Require a BaseParameters type at compile time via enable_if
2016-04-05 22:58:32 +02:00
Patrick Niklaus
64e5ebb55f
Fix parameter parsing tests
2016-04-05 22:58:32 +02:00
Patrick Niklaus
f3e72623e9
Add viaroute suport for new API
2016-04-05 22:58:32 +02:00