相关疑难解决方法(0)

如何从Parsec中的可选解析器中检索值?

对不起,如果这是一个新手问题 - 我想解析定义的东西

Exp :: = Mandatory_Part Optional_Part0 Optional_Part1

以为我能做到这一点:

proc::Parser String

proc = do {

    ;str<-parserMandatoryPart

    ;str0<-optional(parserOptionalPart0)  --(1)

    ;str1<-optional(parserOptionalPart1)  --(2)

    ;return str++str0++str1

}
Run Code Online (Sandbox Code Playgroud)

如果存在可选部分,我想获得str0/str1,否则str0/str1将是"".但是(1)和(2)将不起作用,因为optional()不允许从其参数中提取结果,在本例中为parserOptionalPart0/parserOptionalPart1.

现在做什么是正确的方法?

非常感谢!

比利河

parsing haskell parsec optional

6
推荐指数
2
解决办法
1600
查看次数

标签 统计

haskell ×1

optional ×1

parsec ×1

parsing ×1