8得票1回答
使用Megaparsec进行缩进

我希望使用Megaparsec解析一个基本的缩进语言。最初我使用Parsec,成功地处理了缩进,但现在遇到了很多问题。 我一直在跟随这个教程here,这是我用来解析一个忽略缩进的语言的代码。 module Parser where import Data.Functo...

8得票3回答
Megaparsec,使用StateT和ParsecT回溯用户状态

使用 Megaparsec 5。 按照 这篇指南,我可以通过组合 StateT 和 ParsecT(未定义的类型应该是明显/无关的)来实现回溯用户状态: type MyParser a = StateT UserState (ParsecT Dec T.Text Identity) a ...

8得票1回答
如何使用Parsec解析三元表达式?

buildExpressionParser 只处理一元和二元运算符。它能否处理三元运算符,如?:?这里有一些讨论:这里和这里,但没有一个是确定的。

8得票2回答
Megaparsec:无法解析递归算术字符串

我正在使用Megaparsec编写一个小型解析器,并尝试解析算术表达式。 -- Arithmetic expressions data Aexp = N Num | V Var | Mult Aexp Aexp | ...