2011-03-25 30 views
3

我目前在玩高分析器生成器。如何獲得很好的語法錯誤消息與快樂?

其他解析器生成器可以給出很好的消息,如「意外的結束,預期的」,然後「」。 隨着快樂,我只是得到當前令牌和錯誤的位置。

你能給我一個如何得到上述錯誤信息的例子嗎?

+0

您可以爲每個生產添加額外的右側以捕獲已知錯誤。確保始終將它們添加到最後,否則會擾亂語法的優先級。 – 2011-03-25 11:22:26

+2

由於Happy的工作方式,通常不可能這樣做 - 這是傳統的基於LALR(1)的基於表的解析器,並且在運行時不容易獲得生成錯誤所需的信息。 – 2011-03-25 12:47:02

回答

0

一般來說,從我聽說的,如果你想要很好的解析器錯誤,請使用Parsec而不是Happy。

+0

我現在嘗試了Parsec,但是與快樂相比,語法的定義非常冗長,也很難閱讀。 但它提供了我想要的那種錯誤信息。 – peq 2011-03-26 01:32:59

相關問題