我目前在玩高分析器生成器。如何獲得很好的語法錯誤消息與快樂?
其他解析器生成器可以給出很好的消息,如「意外的結束,預期的」,然後「」。 隨着快樂,我只是得到當前令牌和錯誤的位置。
你能給我一個如何得到上述錯誤信息的例子嗎?
我目前在玩高分析器生成器。如何獲得很好的語法錯誤消息與快樂?
其他解析器生成器可以給出很好的消息,如「意外的結束,預期的」,然後「」。 隨着快樂,我只是得到當前令牌和錯誤的位置。
你能給我一個如何得到上述錯誤信息的例子嗎?
我爲此撰寫了一個快樂功能。
請參見我的博客文章:Toward better GHC syntax errors
它在這個pull請求RFC: On parse error - show the next possible tokens合併。
終於在Happy 1.19.7發佈了。謝謝! – Alec 2017-09-15 18:01:52
您可以爲每個生產添加額外的右側以捕獲已知錯誤。確保始終將它們添加到最後,否則會擾亂語法的優先級。 – 2011-03-25 11:22:26
由於Happy的工作方式,通常不可能這樣做 - 這是傳統的基於LALR(1)的基於表的解析器,並且在運行時不容易獲得生成錯誤所需的信息。 – 2011-03-25 12:47:02