2017-04-09 5 views
1

Haskell Paket Cabal-1.24.2 hat Modul Distribution.PackageDescription.Parse. Modul hat 2 Funktionen: readPackageDescription und parsePackageDescription.Cabal Paket Unterschied zwischen readPackageDescription und parsePackageDescription

Als ich in GHCI laufen:

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

habe ich GenericPackageDescription

analysiert Aber wenn ich in GHCI laufen:

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

Ich habe Parse error:

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

Dateibeispiel ist eine Datei, die mit Hilfe von cabal init generiert wurde

Antwort

1

parsePackageDescription erwartet, dass der Dateiinhalt selbst übergeben wird, nicht der Dateipfad, unter dem sie gespeichert sind. Sie sollten zuerst File lesen ... aber Vorsicht bei Problemen mit der Dateikodierung. http://www.snoyman.com/blog/2016/12/beware-of-readfile

+0

Sie haben Recht. Es ist UTF8-Enkdoning-Problem. Danke für die gesparte Zeit für mich. – Bet

Verwandte Themen