diff options
author | tomsmeding <tom.smeding@gmail.com> | 2019-03-10 18:26:30 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2019-03-10 18:26:30 +0100 |
commit | 48d6f83c36f55471ba66281e6d9b272fb4b336f2 (patch) | |
tree | 0d605ad7140861e30af21c7489d5ea4957ef1c50 /src/Haskell/Parser.hs | |
parent | 34d9f21c6ab529e415f38a5a886b1b612bcbd3bc (diff) |
Enough to prove functoriality of Parser
Diffstat (limited to 'src/Haskell/Parser.hs')
-rw-r--r-- | src/Haskell/Parser.hs | 6 |
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 |