It is confirmed that seems to work as expected, by swapping the lexeme_d with the node directive and it does really make sense.
Appreciate it Steven for the help.
> Date: Sun, 18 Oct 2009 11:53:11 -0700
> From: watanabesj@gmail.com
> To: boost-users@lists.boost.org
> Subject: Re: [Boost-users] [boost::spirit] Help! Unexpected Leading spaces got injected into a parse tree node
>
> AMDG
>
> HT4N - wrote:
> > I have a question regarding unexpected leading spaces got injected into a parse tree node.
> >
> > Here is my grammar:
> >
> > Text = leaf_node_d[+digit_p] >> root_node_d[ch_p('=')] >> leaf_node_d[+digit_p];
> >
> > If I parse "5=5", as expected no extra leading spaces added to the resulting tree nodes.
> >
> > If I parse "5= 5" (read:5 followed by = followed by 4 spaces and followed by 5), given my grammar definition of leaf_node_d[+digit_p], I am expecting the parse tree node value should not contain any leading spaces.
> > Yet, I see that the extra 4 spaces is stored in the corresponding parse tree node as shown below.
> >
> > <snip>
> > ==> <value> 5</value>
> >
> > I am wondering if this is a by design or unexpected behavior. If it is a by design behavior, is there a way to trim leading/trailing spaces.
> >
>
> Perhaps you should use lexeme_d[leaf_node_d[+digit_p]]?
>
> In Christ,
> Steven Watanabe
>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.