在我升压精神的语法我想有做这个的规则:可能促进精神规则参数
规则< ...> noCaseLit = NO_CASE [亮(“关键字”)];
但对于一个自定义的关键字,这样我可以做到这一点:
... >> noCaseLit( “SomeSpecialKeyword”)>> ... >> noCaseLit( “OtherSpecialKeyword1”)
这是可能与提升精神规则,如果是的话如何?
P.S.我用大小写不敏感的东西作为例子,我后面的一般是规则参数化。
编辑: 通过评论中'sehe'提供的链接,我能够接近我想要的东西,但我还没有完成。
/* Defining the noCaseLit rule */
rule<Iterator, string(string)> noCaseLit = no_case[lit(_r1)];
/* Using the noCaseLit rule */
rule<...> someRule = ... >> noCaseLit(phx::val("SomeSpecialKeyword")) >> ...
我还没有想出一个办法自动将文本字符串转换为凤凰值,这样我可以使用这样的规则:
rule<...> someRule = ... >> noCaseLit("SomeSpecialKeyword") >> ...
[分解出的精神规则共同份](http://stackoverflow.com/questions/13388227/factoring-out-common-parts-of-spirit-rules),用于提供 – sehe
THX sehe的可能重复该链接帮助我学习了如何使用继承的属性。 – Halt