2017-04-09 1 views
1

Le paquet Haskell Cabal-1.24.2 possède le module Distribution.PackageDescription.Parse. Le module a 2 fonctions: readPackageDescription et parsePackageDescription.Différence de paquetage cabal entre readPackageDescription et parsePackageDescription

Quand je lance dans ghci:

let d = readPackageDescription normal "C:\\somefile.cabal" 

Je suis analysables GenericPackageDescription

Mais quand je lance dans ghci:

content <- readFile "C:\\somefile.cabal" 
let d = parsePackageDescription content 

j'ai eu Parse error:

ParseFailed (FromString "Plain fields are not allowed in between stanzas: F 2 \"version\" \"0.1.0.0\"" (Just 2)) 

Exemple de fichier est un fichier généré à l'aide de la commande cabal init

Répondre

1

ParsePackageDescription s'attend à ce que le contenu du fichier leur soit transmis, et non le chemin du fichier dans lequel ils sont stockés. Vous voudrez lire le fichier en premier ... mais méfiez-vous des problèmes d'encodage de fichiers. http://www.snoyman.com/blog/2016/12/beware-of-readfile

+0

Vous avez raison. C'est le problème UTF8-enconnant. Merci pour le temps gagné pour moi. – Bet