gpt4 book ai didi

parsing - 真实世界 Haskell 的 CSV 解析器实现

转载 作者:行者123 更新时间:2023-12-02 16:10:15 26 4
gpt4 key购买 nike

Goerzen 等人 present CSV 文件解析器的简单实现,用于向 Real World Haskell 的读者介绍 Parsec 解析组合器库。

这是他们的简洁程序的一个版本:

import Text.ParserCombinators.Parsec

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

代码按预期运行,但是我不明白在最后一行传递字符串“(unknown)”参数的目的。这是我不知道的成语吗?

最佳答案

这是SourceName - 它用于在错误情况下为您提供更好的表示。

它是 SourcePos 的一部分,您将在秒差距中获得许多东西 - 例如 ParseError你会遇到错误情况。

您可能希望看到类似“文件 SourceName 位于第 x 行/第 y 列上的错误”之类的信息;)

从你自己的计算中,你可以通过 getPosition 得到它(这会再次为您提供 SourcePos - 从那里您可以使用 sourceName 来获取此参数)

关于parsing - 真实世界 Haskell 的 CSV 解析器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com