Извините, если это вопрос новичка - я хочу разобрать что-то, определенное в
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
}
Я хочу получить str0 / str1, если присутствуют необязательные части, иначе str0 / str1 будет "". Но (1) и (2) не будут работать, поскольку optional () не позволяет извлекать результат из своих параметров, в данном случае parserOptionalPart0 / parserOptionalPart1.
Теперь Каким будет правильный способ для этого?
Большое спасибо!
Билли Р.