on 67f9282 help sign in
elk/src/Nitpick/Pattern.hs
37 lines 777 B history raw
1module Nitpick.Pattern where
3import qualified AST.Pattern as P
4import qualified AST.Variable as Var
7data Pattern
8 = Data Var.Canonical [Pattern]
9 | Record [String]
10 | Alias String Pattern
11 | Var String
12 | Anything
13 | Literal Literal.Literal
14 | AnythingBut (Set.Set Literal.Literal)
15 deriving (Show, Eq)
18fromPattern :: P.CanonicalPattern -> Pattern
19fromPattern (Annotation.A _region pattern) =
20 case pattern of
21 P.Data ctor patterns ->
22 Data ctor (map fromPattern patterns)
24 P.Record fields ->
25 Record fields
27 P.Alias name pattern ->
28 Alias name (fromPattern pattern)
30 P.Var name ->
31 Var name
33 P.Anything ->
34 Anything
36 P.Literal literal ->
37 Literal literal