я работаю в парсинге файлов с использованием Haskell, и я использую и Data.Attoparsec.Char8
и Data.ByteString.Char8
.Я хочу разобрать выражение, которое может содержать символы, такие как: - / [] _. (минус, косая черта, скобки и подчеркивание).
Я написал следующий парсер
import qualified Data.ByteString.Char8 as B
import qualified Data.Attoparsec.Char8 as A
identifier' :: Parser B.ByteString
identifier' = A.takeWhile $ A.inClass "A-Za-z0-9_//- /[/]"
... но это не работает так, как ожидалось.
ghc> A.parse identifier' (B.pack "EMBXSHM-PortClo")
Done "-PortClo" "EMBXSHM"
ghc> A.parse identifier' (B.pack "AU_D[1].PCMPTask")
Done ".PCMPTask" "AU_D[1]"
может кто-нибудь мне помочь.
Спасибо за ваше время.