Hi Divye,

On Sun, Aug 16, 2009 at 5:12 AM, Divye Kapoor<[email protected]> wrote:
>
>     I went through your code and some of the documentation. However, while
> tracing the code flow, i was able to determine that the string
> "http://www.boost.org"; was being passed using the range represented by
> (start_, end_). I couldn't find where the string "http:"  was being struck
> off from that range.

Actually, there are two places which does the parsing:

  - boost/network/uri/detail/url_parser.hpp -- function parse_url<>(...)
  - boost/network/uri/http_url.hpp -- function parse_special<>(...)

The 'http' is parsed by the function parse_url, which takes the scheme
('http') and the scheme-specific part ('//www.boost.org') and then
delegates the special parsing of the scheme-specific part to
parse_special. What happens then is the range [start_,end_) is just
'//www.boost.org' when it's passed in parse_special.

The problem becomes that because of the grammar I already have in
there, www.boost.org seems to be parsed as the user instead of the
host. Basically I need something regex-like:

  //~([user]:[password]@)[host]~(:[port])

(where '~' denotes optional).

Right now I'm trying a lot of things with a "longest-match" kind of
parser, maybe having lexemes of lexemes.

[snip]
>
> As there is nothing before the lit("//"). Probably, the first lexeme is
> picking up the "http" and the userinfo is getting all the rest of the URL
> ://www.boost.org (as there is no @ around). Unfortunately, I don't have an
> updated boost installation to test this out just yet (no Spirit 2 just yet).
> Why the grammar is ignoring the lit("//") is a mystery to me.
> Hope this helps somewhat (or I might be completely off track on this).

You might want to check out the latest boost trunk and let me know if
you get any farther with testing things out. :)

-- 
Dean Michael Berris
blog.cplusplus-soup.com | twitter.com/mikhailberis
linkedin.com/in/mikhailberis | facebook.com/dean.berris | deanberris.com

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Cpp-netlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cpp-netlib-devel

Reply via email to