* Roger Mason
Thus far, I have: -- derived from RWH -- file: ch16/csv2.hs import Text.ParserCombinators.Parsec
headerLines = endBy csvFile endHeader csvFile = endBy line eol line = sepBy cell (char ',') cell = many (noneOf ",\n") eol = char '\n'
parseCSV :: String -> Either ParseError [[String]] parseCSV input = parse csvFile "(unknown)" input
parseHDR :: String -> Either ParseError [[String]] parseHDR input = parse headerLines "(unknown)" input
endHeader = string "Energy Counts"
This loads into GHCi (7.6.2) OK. However, when I test it:
parseHDR "Bruker Nano GmbH Berlin, Germany\nEsprit 1.9\n\nDate: 02/05/2013 10:06:49 AM\nReal time: 15000\nEnergy Counts"
Not in scope: `parseHDR'
which makes sense because
ghci> :t endHeader
<interactive>:1:1: Not in scope: `endHeader'
Clearly, my naiive implementation of endHeader is no good.
Hi Roger, "Not in scope" means that that thing is not defined. So it's not a problem with your implementation, but with the way you load it. If you copy-paste your ghci session here, you may get further help. Roman