Désolé si c'est une question novice - je veux analyser quelque chose défini parComment récupérer la valeur de l'analyseur en option dans Parsec?
Exp :: = Mandatory_Part Optional_Part0 Optional_Part1
Je pensais que je pouvais faire ceci:
proc::Parser String
proc = do {
;str<-parserMandatoryPart
;str0<-optional(parserOptionalPart0) --(1)
;str1<-optional(parserOptionalPart1) --(2)
;return str++str0++str1
}
Je veux obtenir str0/str1 si des parties optionnelles sont présentes, sinon, str0/str1 serait "". Mais (1) et (2) ne fonctionneront pas puisque optional() ne permet pas d'extraire le résultat de ses paramètres, dans ce cas, parserOptionalPart0/parserOptionalPart1.
Maintenant, quelle serait la correcte façon de le faire?
Merci beaucoup!
Billy R
Merci Paul. Cela a fonctionné pour moi. –
Fonctionne juste. X7D – dmvianna