如何使用Parsec进行适当的折叠

时间:2012-01-03 17:55:55

标签: haskell parsec attoparsec

有没有办法用Parsec进行正确的大小写折叠(比方说我想要一个来自Data.Attoparsec.Text的行为类似于stringCI的解析器)。 在Text.Parsec.Token中执行不区分大小写的解析的代码只使用char (toLower c) <|> char (toUpper c),但没有正确的大小写折叠。所以我很困惑这是否可能。

1 个答案:

答案 0 :(得分:1)

Parsec没有此内置功能的任何功能,但您可以使用例如来自foldCase包的case-insensitive和循环中的satisfy。我不是Unicode专家,因此我不确定您需要采取哪些额外的预防措施来确保正确性。

如果您需要对区域设置敏感的转换,则foldCase文档中建议使用text-icu包;它看起来非常全面。

相关问题