Извините, если это вопрос новичка - я хочу разобрать что-то, определенное как
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) не сработают, так как опцияручная () не позволяет извлекать результат из его параметров, в данном случае parserOptionalPart0 / parserOptionalPart1.
Теперь, что было бы собственно способ сделать это?
Большое спасибо!
Билли Р