From eae265520950429208283d7b1fa36f74ce9987cd Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 25 Nov 2016 01:41:29 +0100 Subject: initial commit [WIP] --- Parser.hs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Parser.hs (limited to 'Parser.hs') diff --git a/Parser.hs b/Parser.hs new file mode 100644 index 0000000..be42375 --- /dev/null +++ b/Parser.hs @@ -0,0 +1,26 @@ +module Parser + ( module Export + , decimal + , ueventFile + ) where + +import qualified Text.Megaparsec.Lexer as Lexer +import Text.Megaparsec as Export (parse, parseMaybe) +import Text.Megaparsec.String as Export (Parser) + +import Data.Map (Map); import qualified Data.Map as Map +import Text.Megaparsec + + +decimal :: Parser Integer +decimal = Lexer.decimal + +ueventFile :: Parser (Map String String) +ueventFile = + Map.fromList <$> some param + +param :: Parser (String,String) +param = do + k <- someTill anyChar (char '=') + v <- someTill anyChar newline + return (k,v) -- cgit v1.2.3