aboutsummaryrefslogtreecommitdiff
path: root/src/Haskell/Parser.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Haskell/Parser.hs')
-rw-r--r--src/Haskell/Parser.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/Haskell/Parser.hs b/src/Haskell/Parser.hs
index 41216d5..0536fde 100644
--- a/src/Haskell/Parser.hs
+++ b/src/Haskell/Parser.hs
@@ -29,35 +29,35 @@ pDef = do
symbolO ";"
case args of
[] -> return $ Def n ex
- _ -> return $ Def n (Lam args ex)
+ _ -> return $ Def n (Lam args ex Nothing)
pExpr :: Parser Expr
pExpr = pLam <|> pCase <|> pApp
where
- pSimpleExpr = choice [Num <$> pNum
- ,Ref <$> pVariable
+ pSimpleExpr = choice [Num <$> pNum <*> return Nothing
+ ,Ref <$> pVariable <*> return Nothing
,parens (pExpr `sepBy` symbolO ",") >>= \case
[ex] -> return ex
- exs -> return $ Tup exs]
+ exs -> return $ Tup exs Nothing]
pLam = do
symbolO "\\"
args <- many1 pNameV
symbolO "->"
body <- pExpr
- return $ Lam args body
+ return $ Lam args body Nothing
pApp = many1 pSimpleExpr >>= \case
[] -> undefined
[e] -> return e
- (e:es) -> return $ App e es
+ (e:es) -> return $ App e es Nothing
pCase = do
symbolW "case"
e <- pExpr
symbolW "of"
arms <- braces (pCaseArm `sepBy` symbolO ";")
- return $ Case e arms
+ return $ Case e arms Nothing
pCaseArm = do
pat <- pLargePat