我正在使用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"}");
在某些时候,它只有两个令牌一个接一个。如果我取消注释第二个令牌,当我输入正确的序列时,我的函数将不再正确解析。如果我评论令牌,一切都很好(虽然我显然不能包括->
)。
你能帮我弄清楚发生了什么吗?
答案 0 :(得分:1)
找到答案 - 键盘输入将短划线重写为 - (减号)。