Spirit中的简单布尔表达式解析器

时间:2013-12-03 08:08:53

标签: c++ parsing boost boost-spirit boost-spirit-qi

在阅读Spirit教程之后,我想出了以下布尔表达式解析器:

expression =
          bool_                           [_val =  _1]
            >> *(  ("&&" >> expression    [_val && _1])
                |  ("||" >> expression    [_val || _1])
                )
            ;

对于常量,我从解析器得到了正确的结果:

  

true - > 1

     

false - > 0

但是对于稍微复杂一些的表达方式来说,事情是非常错误的:

  

true&& false - > 1(不正确!)

     

false&&是的 - > 0(正确)

     

false ||是的 - > 0(不正确!)

     

true || false - > 1(正确)

0 个答案:

没有答案