on master help sign in
Have a list of patterns in Src.Lambda AST nodes
e55ba2bEvan Czaplicki
src/AST/Expression/Canonical.hs+1−1
@@ -51,7 +51,7 @@ data Expr_
51 | Literal Literal.Literal
51 | Literal Literal.Literal
52 | List [Expr]
52 | List [Expr]
53 | Binop Name ModuleName.Canonical Name Expr Expr
53 | Binop Name ModuleName.Canonical Name Expr Expr
54− | Lambda Ptrn.Canonical Expr
54+ | Lambda [Ptrn.Canonical] Expr
55 | Call Expr [Expr]
55 | Call Expr [Expr]
56 | If [(Expr, Expr)] Expr
56 | If [(Expr, Expr)] Expr
57 | Let [Graph.SCC Def] Expr
57 | Let [Graph.SCC Def] Expr
src/AST/Expression/Source.hs+1−1
@@ -42,7 +42,7 @@ data Expr_
42 | Op N.Name
42 | Op N.Name
43 | Negate Expr
43 | Negate Expr
44 | Binops [(Expr, A.Located N.Name)] Expr
44 | Binops [(Expr, A.Located N.Name)] Expr
45− | Lambda Ptrn.Raw Expr
45+ | Lambda [Ptrn.Raw] Expr
46 | Call Expr [Expr]
46 | Call Expr [Expr]
47 | If [(Expr, Expr)] Expr
47 | If [(Expr, Expr)] Expr
48 | Let [A.Located Def] Expr
48 | Let [A.Located Def] Expr
src/AST/Expression/Valid.hs+1−1
@@ -41,7 +41,7 @@ data Expr_
41 | Op N.Name
41 | Op N.Name
42 | Negate Expr
42 | Negate Expr
43 | Binops [(Expr, A.Located N.Name)] Expr
43 | Binops [(Expr, A.Located N.Name)] Expr
44− | Lambda Pattern.Raw Expr
44+ | Lambda [Pattern.Raw] Expr
45 | Call Expr [Expr]
45 | Call Expr [Expr]
46 | If [(Expr, Expr)] Expr
46 | If [(Expr, Expr)] Expr
47 | Let [Def] Expr
47 | Let [Def] Expr
src/Parse/Expression.hs+1−2
@@ -7,7 +7,6 @@ module Parse.Expression
7
7
8
8
9import Control.Monad (guard)
9import Control.Monad (guard)
10−import qualified Data.List as List
11import Data.Text (Text)
10import Data.Text (Text)
12
11
13import Parse.Primitives
12import Parse.Primitives
@@ -384,7 +383,7 @@ function start =
384 revArgs <- gatherArgs [arg]
383 revArgs <- gatherArgs [arg]
385 spaces
384 spaces
386 (body, end, space) <- expression
385 (body, end, space) <- expression
387− let func = List.foldl' (\e x -> A.at start end (Src.Lambda x e)) body revArgs
386+ let func = A.at start end (Src.Lambda (reverse revArgs) body)
388 return ( func, end, space )
387 return ( func, end, space )
389
388
390
389