Я пишу синтаксический анализатор для анализа огромных кусков английского текста с помощью attoparsec. До сих пор все было отлично, за исключением разбора этого символа "――"
. Я знаю, что это всего лишь два тире вместе "--"
. Странно то, что синтаксический анализатор ловит это в этом коде:
wordSeparator :: Parser ()
wordSeparator = many1 (space <|> satisfy (inClass "――?!,:")) >> pure ()
но не в этом случае:
specialChars = ['――', '?', '!', ',', ':']
wordSeparator :: Parser ()
wordSeparator = many1 (space <|> satisfy (inClass specialChars)) >> pure ()
Причина, по которой я использую список specialChars
, заключается в том, что мне нужно рассмотреть множество символов, и я применяю его во многих случаях. И для ввода рассмотрим: "I am ――Walt Whitman._"
и вывод должен быть {"I", "am", "Walt", "Whiteman."}
Я считаю, что это в основном потому, что "――"
не является Char? Как это исправить?