使用Boost.Spirit

时间:2016-10-06 07:52:15

标签: c++ boost-spirit

我正在使用Boost.Spirit实现的编程语言(full project here),我正在努力解决以下问题。我有一个函数的以下声明(this file中的第77行):

function_body_rule %=
  identifier_rule
  >> lit(L":=")
  >> lit(L"(")
  >> -parameter_declaration_rule % ','
  >> lit(L")")
  //>> lit(L"->") // epic fail if you uncomment this
  >> type_specification_rule
  >> lit(L"{")
  >> *(assignment_statement_rule)
  >> lit(L"}");

在某些时候,它只有两个令牌一个接一个。如果我取消注释第二个令牌,当我输入正确的序列时,我的函数将不再正确解析。如果我评论令牌,一切都很好(虽然我显然不能包括->)。

你能帮我弄清楚发生了什么吗?

1 个答案:

答案 0 :(得分:1)

找到答案 - 键盘输入将短划线重写为 - (减号)。