boost::spirit::qi keywords and identifiers

前端 未结 1 1857
青春惊慌失措
青春惊慌失措 2020-12-06 20:17

I\'ve seen a few posts related to the nuances of keyword/identifier use in qi grammars, but I can\'t quite make sense of how the approach demonstrated in the boost examples

相关标签:
1条回答
  • 2020-12-06 20:58

    Actually this question deserves some votes. It should be much more oft realized, and probably be addressed in the Spirit Tutorials, as it's often overlooked (obviously the compiler samples are ok)


    Perhaps I'm reading the qi syntax wrong, but it seems to me that this would not accept any literal that matches or starts with a keyword.

    That's correct. In case you spotted in one of my own answers (quite a good chance) I tend to do this as a quick-and-dirty way to fixup grammars that didn't have proper keyword guards there in the first place.

    But yeah, requiring distinct keywords/identifiers requires some more work. I might find a link to an answer where it's done correctly (it's not hard, it's just tedious).

    Meanwhile, have a look at the very relevant

    • Qi distinct Parser Directive from the Spirit Repository

    If you're building a really robust general-purpose language grammar, this is about the point where you should consider using a Spirit Lexer. Then again, in my humble opinion, Spirit aims at rapid development and small, one-off grammars that are succinctly embedded using Spirit's expression template eDSL. In a lot of aspects, that is much the antipode of when this matters, I reckon.

    0 讨论(0)
提交回复
热议问题