aboutsummaryrefslogtreecommitdiff
path: root/src/Haskell/Parser.hs
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2019-03-10 18:26:30 +0100
committertomsmeding <tom.smeding@gmail.com>2019-03-10 18:26:30 +0100
commit48d6f83c36f55471ba66281e6d9b272fb4b336f2 (patch)
tree0d605ad7140861e30af21c7489d5ea4957ef1c50 /src/Haskell/Parser.hs
parent34d9f21c6ab529e415f38a5a886b1b612bcbd3bc (diff)
Enough to prove functoriality of Parser
Diffstat (limited to 'src/Haskell/Parser.hs')
-rw-r--r--src/Haskell/Parser.hs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Haskell/Parser.hs b/src/Haskell/Parser.hs
index 0f55a63..e7b9535 100644
--- a/src/Haskell/Parser.hs
+++ b/src/Haskell/Parser.hs
@@ -94,7 +94,7 @@ pType = foldr1 TyFun <$> pSimpleType `sepBy` reservedOp "->"
pExpr :: Parser Expr
pExpr = pLam <|> pCase <|> pApp
where
- pSimpleExpr = choice [LitNum <$> integer
+ pSimpleExpr = choice [Num <$> integer
,Ref <$> (identifier <|> try (parens operator))
,parens pExpr]
@@ -108,10 +108,10 @@ pExpr = pLam <|> pCase <|> pApp
pCase = do
reserved "case"
- n <- varident
+ e <- pExpr
reserved "of"
arms <- bracesBlock (semiSepOrFoldedLines pCaseArm)
- return $ Case n arms
+ return $ Case e arms
pCaseArm = do
pat <- pLargePat