【发布时间】:2012-11-22 08:40:23
【问题描述】:
我正在尝试解析 predicate -> action 形式的 rule。
我的问题是predicate 可以是任何有效的数学表达式,因此它实际上可能包含一个减号或一个更大的符号(但我们必须按顺序禁止它们,因为这是我们的标记想将predicate 与action 分开)。
基本上,我希望predicate 消耗所有非空格,直到它碰到字符串"->"。
我该怎么做?
是修复我在下面评论的行的正确方法还是我应该更好地定义 predicate 是什么,就有效表达式而言,并让解析器在 predicate 结束时落入 "->",根据到那个有效的表达?
rule %=
predicate
>> "->"
>> action
;
predicate %= (+~(qi::char_("-"))); // BAD: works only if no minus sign in predicate
action %= (+(qi::char_));
【问题讨论】:
标签: c++ boost-spirit