{-# LANGUAGE NoImplicitPrelude #-} module Cmt.Parser.Options ( parse ) where import ClassyPrelude import Data.Attoparsec.Text (Parser, char, decimal, many', many1, parseOnly) import Cmt.Parser.Attoparsec (lexeme) commaP :: Parser () commaP = void $ many' (lexeme $ char ',') optionsP :: Parser [Int] optionsP = lexeme . many1 $ commaP *> decimal <* commaP -- run parser parse :: Text -> Maybe [Int] parse options = case parseOnly optionsP options of Right c -> Just c Left _ -> Nothing