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