Re: [lex][boost 1.44] 2 oddities
"Hartmut Kaiser" <[email protected]> Wed, 17 Nov 2010 15:26:54 -0600
| Newsgroups | gmane.comp.parsers.spirit.devel |
|---|---|
| Message-ID | <[email protected]> |
> >> Oddity #2: It seems that I have to define > >> assign_to_attribute_from_iterators<> for new types, even if I define > >> a semantic action that does the assignment. > > > > Yes, that's true. It's the only way the lexer could know how to > > convert a certain input character sequence into your type. Or do I > > misunderstand something? > > No, I was just making sure that *my* understanding of that was correct. > > >> This further means that any > >> semantic action [_val = ...] is useless, because the conversion will > >> happen later and overwrite the token's value anyway, right? > > > > Hmmm, I think these two things are unrelated. The conversion from the > > input iterators to your type is one thing, while the assignment inside > > the semantic action is another one. Could you elaborate why you > > believe the semantic action to be useless? > > To me, the fact that they are unrelated leads to some slightly wonky > behavior. For instance if I: > > (1) define an assignment to the token value in a semantic action, > (2) I still have to specialize assign_to_attribute_from_iterators<>, > which is fine, except that > (3) my specialization of assign_to_attribute_from_iterators<> gets invoked > at parse-time, overwriting the assignment I did at lex-time (1). > > Am I misunderstanding how it works? That was the behavior I saw, if I'm > not mistaken. Seems I misunderstood. Are you talking about a semantic action in the lexer or one in the parser? Regards Hartmut --------------- http://boost-spirit.com ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev