我看不出为什么会出现缩进错误
[1/1]编译Main(main.hs,main.o)
main.hs:19:17:对输入`case'
的解析错误
每个缩进都设置了标签
我是否需要使用空格而不是制表符?
import Text.ParserCombinators.Parsec
csvFile = endBy line eol
line = sepBy cell (char ',')
cell = many (noneOf ",\n\r")
eol = try (string "\n\r")
<|> try (string "\r\n")
<|> string "\n"
<|> string "\r"
<|> fail "Couldn't find EOL"
parseCSV :: String -> Either ParseError [[String]]
parseCSV input = parse csvFile "(unknown)" input
main =
do c <- getContents
case parse csvFile "(stdin)" c of
Left e -> do putStrLn "Error parsing input:"
print e
Right r -> mapM_ print r
答案 0 :(得分:1)
如果您的代码与此处的代码完全相同,则问题是case
与c <- getContents
之上的代码不一致;你需要用一个空间来代替它。此外,您需要将print e
缩进一个空格,以便与putStrLn "Error parsing input:"
对齐。