From 16c882b501cfc56ae3082ae688891e914a02d5dc Mon Sep 17 00:00:00 2001 From: darkf Date: Sat, 19 Oct 2013 02:05:16 -0700 Subject: [PATCH] add cons pattern to parser --- parser.hs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/parser.hs b/parser.hs index 8664a6a..c87ae2e 100644 --- a/parser.hs +++ b/parser.hs @@ -39,9 +39,19 @@ block = do reserved "end" return $ Block lst +intPattern = fmap IntP integer +varPattern = fmap VarP identifier + +consPattern = do + x <- intPattern <|> varPattern + symbol "::" + y <- pattern + return $ ConsP x y + pattern = option UnitP $ - fmap VarP identifier - <|> fmap IntP integer + try consPattern + <|> varPattern + <|> intPattern patterns = sepBy pattern (symbol ",")