From fd502ca628b539cffbc38c21755ebaa615b30b72 Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Sun, 10 Mar 2019 16:42:07 +0000 Subject: [PATCH] Add parenthesis to parsing --- AST.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/AST.hs b/AST.hs index 7204136..73523d6 100644 --- a/AST.hs +++ b/AST.hs @@ -39,7 +39,8 @@ instance Read AST where return (Function name params body) instance Read Expr where - readPrec = choice [ parseNum + readPrec = choice [ parseParens + , parseNum , parseVar , parseCall , parseIf @@ -50,7 +51,9 @@ instance Read Expr where , parseBinOp "<" (Cmp LT) , parseBinOp "==" (Cmp EQ) ] - where parseNum = Num <$> readPrec + where parseParens = step $ lift $ + between (char '(') (char ')') (readS_to_P reads) + parseNum = Num <$> readPrec parseVar = Var <$> lift (munch1 isAlpha) parseCall = do func <- lift (munch1 isAlpha) -- 2.30.2