2016-10-06 33 views
-1

我正在使用Boost.Spirit實現的編程語言(full project here),我正在努力解決以下問題。我有一個功能(在this file線77)以下聲明:使用Boost.Spirit時未能正確解析

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

@jv_你沒有取消我評論的評論。取消註釋並嘗試用'...:string) - >字符串...' –

+0

我不小心複製了以前的版本。 [This one](http://melpon.org/wandbox/permlink/71LKZpNfqrn9TP8y)沒有註釋。 – llonesmiz

+0

@jv_對我來說失敗(提升1.59) –

回答

1

找到答案 - 鍵盤輸入將短劃線重寫爲 - (減號)。