我在使用Haskell進行文件解析工作,我正在使用Data.Attoparsec.Char8
和Data.ByteString.Char8
。我想解析一個表達式,其中可以包含如下符號:-/[] _。(減號,斜線,布拉克和下劃線)。haskell標識符識別
我已經寫了下面的解析器
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]"
有人可以幫助我。
謝謝你的時間。
@sdv非常感謝,但關於(。)怎麼樣? – 2012-02-03 15:36:43
@FOPALéonConstantin你對A.inClass的論點沒有意義 - 只需添加它即可! – sclv 2012-02-03 15:50:28
@FOPALéonConstantin,你看錯了位置。答案看起來像'完成rest_of_string結果' – luqui 2012-02-03 19:06:57