嘿嘿,另一个问题:
我编写了许多非常相似的解析器,它们使用了许多通用规则。我可以将这些规则<> 对象存储在多个解析器可以访问它们的地方吗?它看起来像这样:
rule<> nmeaStart = ch_p('$');
rule<> nmeaAddress = alnum_p() >> alnum_p() >> !alnum_p() >> !alnum_p();
rule<> nmeaDelim = ch_p(',');
rule<> nmeaHead = nmeaStart >> nmeaAddress >> nmeaDelim;
...
/* other rules. Different for each parser*/
...
rule<> nmeaChkSumStart = ch_p('*');
rule<> nmeaChkSum = int_parser<unsigned int,16,2,2>();
rule<> nmeaTail = nmeaChkSumStart >> nmeaChkSum >> eol_p;
我想将所有名为 nmea... 的规则放在一个公共位置,最好放在某个类的受保护静态变量中。我想在 Spirit 文档中称为语法的东西是关键,但老实说,我还不太了解它。
非常感谢!干杯!