Commit 5e139628 authored by Matthias Böhm's avatar Matthias Böhm
Browse files

added constrained type arguments to enumFrom[Then][To]

parent 778a7bd1
......@@ -742,9 +742,9 @@ listExpr = brackets (elements `opt` mk' List [])
where
elements = expr <**> rest
rest = comprehension
<|> enumeration (flip EnumFromTo) (EnumFrom Nothing)
<|> enumeration (flip $ EnumFromTo Nothing) (EnumFrom Nothing)
<|> comma <-*> expr <**>
(enumeration (flip3 EnumFromThenTo) (flip EnumFromThen)
(enumeration (flip3 $ EnumFromThenTo Nothing) (flip $ EnumFromThen Nothing)
<|> list <$> many (comma <-*> expr))
`opt` (\e -> mk' List [e])
comprehension = flip (mk ListCompr) <$-> bar <*> quals
......
......@@ -299,11 +299,11 @@ ppExpr _ (List _ es) = bracketList (map (ppExpr 0) es)
ppExpr _ (ListCompr _ e qs) =
brackets (ppExpr 0 e <+> vbar <+> list (map ppStmt qs))
ppExpr _ (EnumFrom _ e) = brackets (ppExpr 0 e <+> text "..")
ppExpr _ (EnumFromThen e1 e2) =
ppExpr _ (EnumFromThen _ e1 e2) =
brackets (ppExpr 0 e1 <> comma <+> ppExpr 0 e2 <+> text "..")
ppExpr _ (EnumFromTo e1 e2) =
ppExpr _ (EnumFromTo _ e1 e2) =
brackets (ppExpr 0 e1 <+> text ".." <+> ppExpr 0 e2)
ppExpr _ (EnumFromThenTo e1 e2 e3) =
ppExpr _ (EnumFromThenTo _ e1 e2 e3) =
brackets (ppExpr 0 e1 <> comma <+> ppExpr 0 e2
<+> text ".." <+> ppExpr 0 e3)
ppExpr p (UnaryMinus op e) = parenExp (p > 1) (ppInfixOp op <> ppExpr 1 e)
......
......@@ -412,17 +412,17 @@ showsExpression (EnumFrom _ expr)
= showsString "(EnumFrom "
. showsExpression expr
. showsString ")"
showsExpression (EnumFromThen exp1 exp2)
showsExpression (EnumFromThen _ exp1 exp2)
= showsString "(EnumFromThen "
. showsExpression exp1 . space
. showsExpression exp2
. showsString ")"
showsExpression (EnumFromTo exp1 exp2)
showsExpression (EnumFromTo _ exp1 exp2)
= showsString "(EnumFromTo "
. showsExpression exp1 . space
. showsExpression exp2
. showsString ")"
showsExpression (EnumFromThenTo exp1 exp2 exp3)
showsExpression (EnumFromThenTo _ exp1 exp2 exp3)
= showsString "(EnumFromThenTo "
. showsExpression exp1 . space
. showsExpression exp2 . space
......
......@@ -257,9 +257,9 @@ data Expression
| List [SrcRef] [Expression]
| ListCompr SrcRef Expression [Statement] -- the ref corresponds to the main list
| EnumFrom (Maybe ConstrType_) Expression
| EnumFromThen Expression Expression
| EnumFromTo Expression Expression
| EnumFromThenTo Expression Expression Expression
| EnumFromThen (Maybe ConstrType_) Expression Expression
| EnumFromTo (Maybe ConstrType_) Expression Expression
| EnumFromThenTo (Maybe ConstrType_) Expression Expression Expression
| UnaryMinus Ident Expression
| Apply Expression Expression
| InfixApply Expression InfixOp Expression
......@@ -405,9 +405,9 @@ instance Eq Expression where
(List _ es1) == (List _ es2) = es1 == es2
(ListCompr _ e1 ss1) == (ListCompr _ e2 ss2) = e1 == e2 && ss1 == ss2
(EnumFrom _ e1) == (EnumFrom _ e2) = e1 == e2
(EnumFromThen e11 e21) == (EnumFromThen e12 e22) = e11 == e12 && e21 == e22
(EnumFromTo e11 e21) == (EnumFromTo e12 e22) = e11 == e12 && e21 == e22
(EnumFromThenTo e11 e21 e31) == (EnumFromThenTo e12 e22 e32)
(EnumFromThen _ e11 e21) == (EnumFromThen _ e12 e22) = e11 == e12 && e21 == e22
(EnumFromTo _ e11 e21) == (EnumFromTo _ e12 e22) = e11 == e12 && e21 == e22
(EnumFromThenTo _ e11 e21 e31) == (EnumFromThenTo _ e12 e22 e32)
= e11 == e12 && e21 == e22 && e31 == e32
(UnaryMinus i1 e1) == (UnaryMinus i2 e2) = i1 == i2 && e1 == e2
(Apply e11 e21) == (Apply e12 e22) = e11 == e12 && e21 == e22
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment