Haskell 如何在Megaparsec中解析字符串文字?

Haskell 如何在Megaparsec中解析字符串文字?,haskell,megaparsec,Haskell,Megaparsec,因此,我花了一些时间阅读文档,但对于除了最基本的语言以外的任何语言来说,教程都是不够的,而且很难阅读该语言的全部文档。我太容易迷路了 如何创建“&”someStringUtf8“解析器 charLiteral是否仅适用于ASCII字符,或者它是否支持任何类型的UTF8字符(数字等)?没有UTF8字符。有ASCII/Western/../Unicode字符,也有此类字符的编码(UTF-8是一种编码).Text目前实际上使用UTF-16,因此在megaparsec中可能会用到UTF-16;但这不必麻

因此,我花了一些时间阅读文档,但对于除了最基本的语言以外的任何语言来说,教程都是不够的,而且很难阅读该语言的全部文档。我太容易迷路了

如何创建
“&”someStringUtf8“
解析器


charLiteral
是否仅适用于ASCII字符,或者它是否支持任何类型的UTF8字符(数字等)?

没有UTF8字符。有ASCII/Western/../Unicode字符,也有此类字符的编码(UTF-8是一种编码).
Text
目前实际上使用UTF-16,因此在megaparsec中可能会用到UTF-16;但这不必麻烦您,因为接口完全抽象了编码,您只处理字符。这显然适用于ASCII(当然包括数字,您为什么不这么认为?),但使用通用Unicode也应该不会有任何困难。我的意思是
charLiteral
是否意味着
([a-z]|[a-z])
或者它都是字符?我似乎混淆了“字符”和“字母”“看来的确如此!字符只是
Char
类型的任何值,例如
'A'
'2'
'ξ'
'♣'
'
甚至像
'\r'
这样不可打印的字符。没有UTF8字符。有ASCII/西方/…/Unicode字符,并且有这种字符的编码(UTF-8是一种编码)<代码>文本目前实际上使用UTF-16,所以在megaparsec中可能会用到它;但是这不需要打扰您,因为接口完全抽象了编码,您只处理字符。这显然适用于ASCII(当然包括数字,你为什么不这么认为?),但对于通用Unicode也不会有任何困难。我的意思是
charLiteral
是指
([a-z]|[a-z])
,还是它都是字符?看来我把“字符”和“字母”搞混了,真的是这样!字符只是
Char
类型的任何值,例如
'A'
'2'
'ξ'
'♣'
'
甚至是像
'\r'
这样的不可打印字符。