Skip to content

Instantly share code, notes, and snippets.

@svdberg
Created February 21, 2015 12:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save svdberg/35c0d4add5952a19c52c to your computer and use it in GitHub Desktop.
Save svdberg/35c0d4add5952a19c52c to your computer and use it in GitHub Desktop.
{-# LANGUAGE OverloadedStrings #-}
module CommandParser where
import Data.Attoparsec.Char8
import Control.Applicative
import Data.ByteString
data Command = Retrieve | Delete | New deriving Show
parseCommand :: Parser Command
parseCommand =
(string "Retrieve" >> return Retrieve)
<|> (string "Delete" >> return Delete)
<|> (string "New" >> return New)
parseInput s = parseOnly $ parseCommand <|> string s
parse :: ByteString -> Either String Command
parse s = parseOnly parseCommand s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment