#!/usr/bin/env runhaskell
import Control.Applicative ((<|>))
import Text.Parsec.Char
import Text.ParserCombinators.Parsec hiding (spaces, (<|>))
main :: IO()
main = do
print $ parse p "" "a\nb\n\nc\nd" where
p = sepBy1 (try pp) newline
pp = sepBy1 l newline
l = many1 letter
Je suis en train d'analyser ceci:Nested sepBy1 avec la même delimiter
a
b
c
d
à ceci: [["a", "b"], ["c", "d"]]
. J'ai essayé de jouer avec try
mais ça ne semble pas marcher.
C'est probablement quelque chose de très basique, essayez d'expliquer ce qui se passe dans votre réponse (je suis débutant dans Haskell et Parsec).
Editer: J'ai oublié d'ajouter un message d'erreur.
Left (line 3, column 1):
unexpected "\n"
expecting letter
Qu'est-ce qui ne fonctionne pas? Vous obtenez une erreur de compilation? Mauvaise sortie ?? S'il vous plaît soyez précis sur ce qu'est votre problème. –
@WillemVanOnsem Désolé, vous avez oublié d'ajouter un message d'erreur. Je l'ai ajouté à la question. – monnef
Il y a deux nouvelles lignes séparant chaque segment de lettres – Euge