From 2f3c8f5cb6c8b9e6f5be02b20910f8105a9011a6 Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Sat, 18 May 2019 20:32:54 +0100 Subject: [PATCH] Parse parentheses Yes, it's that easy. Try out the difference between 1 * 2 + 3 and 1 * (2 + 3) --- AST.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AST.hs b/AST.hs index 7dad3a1..e491b64 100644 --- a/AST.hs +++ b/AST.hs @@ -13,7 +13,7 @@ data BinOp = Add | Sub | Mul | Cmp Ordering deriving Show instance Read Expr where - readPrec = choice [ parseNum + readPrec = parens $ choice [ parseNum , parseVar , parseBinOp "<" 10 (Cmp LT) , parseBinOp "+" 20 Add -- 2.30.2