簡體   English   中英

將Haskell Parsec語法翻譯成Scala?

[英]Translate Haskell Parsec grammar to Scala?

我正在嘗試使用Parsec將用Haskell編寫的語法翻譯成Scala的解析器組合器。

實際匹配表達式的翻譯非常簡單,至少在我看來,在Scala中更容易一些。 對我來說一點都不清楚的是如何處理Parsec使用monad傳遞的狀態。

Scala解析器讀入Input並生成ParseResult [T]。

相反,Haskell中的GenParser讀入輸入和狀態並生成另一個解析器。 在Scala中傳遞這種狀態令我感到困惑。

有沒有人在Scala中有一個狀態解析的例子,他們願意分享?

我知道在Scala Parsers Combinators中處理狀態豐滿的唯一方法是通過into方法,也稱為>>flatMap (是的,你可以在for-comprehensions中使用它)。 然而,它通過狀態(或者,更准確地說,分析結果) 解析器,而不是沿下一個解析器,這似乎是你所描述的。

不知道Haskell的Parsec,我很難猜測如何用它來翻譯你的語法。

另見這個問題 有一篇關於Scala解析器組合的非常有趣的論文,但我無法找到它。 Scala Lang上的一些人可能會把它打開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM