on master help sign in
Have a list of patterns in Src.Lambda AST nodes
commite55ba2b02c5a5d92fdba44babeb067aad41ad4e7 authorEvan Czaplicki <evancz@users.noreply.github.com> dateFri 27 Oct 2017, 18:15 (9 years ago) parent02a7ce0
4 files changed+4−5
src/AST/Expression/Canonical.hs+1−1 src/AST/Expression/Source.hs+1−1 src/AST/Expression/Valid.hs+1−1 src/Parse/Expression.hs+1−2
src/AST/Expression/Canonical.hs+1−1
@@ -51,7 +51,7 @@ data Expr_
5151 | Literal Literal.Literal
5252 | List [Expr]
5353 | Binop Name ModuleName.Canonical Name Expr Expr
54− | Lambda Ptrn.Canonical Expr
54+ | Lambda [Ptrn.Canonical] Expr
5555 | Call Expr [Expr]
5656 | If [(Expr, Expr)] Expr
5757 | Let [Graph.SCC Def] Expr
src/AST/Expression/Source.hs+1−1
@@ -42,7 +42,7 @@ data Expr_
4242 | Op N.Name
4343 | Negate Expr
4444 | Binops [(Expr, A.Located N.Name)] Expr
45− | Lambda Ptrn.Raw Expr
45+ | Lambda [Ptrn.Raw] Expr
4646 | Call Expr [Expr]
4747 | If [(Expr, Expr)] Expr
4848 | Let [A.Located Def] Expr
src/AST/Expression/Valid.hs+1−1
@@ -41,7 +41,7 @@ data Expr_
4141 | Op N.Name
4242 | Negate Expr
4343 | Binops [(Expr, A.Located N.Name)] Expr
44− | Lambda Pattern.Raw Expr
44+ | Lambda [Pattern.Raw] Expr
4545 | Call Expr [Expr]
4646 | If [(Expr, Expr)] Expr
4747 | Let [Def] Expr
src/Parse/Expression.hs+1−2
@@ -7,7 +7,6 @@ module Parse.Expression
77
88
99import Control.Monad (guard)
10−import qualified Data.List as List
1110import Data.Text (Text)
1211
1312import Parse.Primitives
@@ -384,7 +383,7 @@ function start =
384383 revArgs <- gatherArgs [arg]
385384 spaces
386385 (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)
388387 return ( func, end, space )
389388
390389