@@ -10,17 +10,17 @@ module Analysis.Syntax.Python
1010( -- * Syntax
1111 T. Term (.. )
1212, Python (.. )
13- , pattern Noop''
14- , pattern Iff''
15- , pattern Bool''
16- , pattern String''
17- , pattern Throw''
18- , pattern Let''
19- , pattern (:>>>> )
20- , pattern Import''
21- , pattern Function''
22- , pattern Call''
23- , pattern Locate''
13+ , pattern Noop
14+ , pattern Iff
15+ , pattern Bool
16+ , pattern String
17+ , pattern Throw
18+ , pattern Let
19+ , pattern (:>>)
20+ , pattern Import
21+ , pattern Function
22+ , pattern Call
23+ , pattern Locate
2424 -- * Abstract interpretation
2525, eval0
2626, eval
@@ -58,58 +58,58 @@ data Python (arity :: T.Nat) where
5858
5959infixl 1 :>>>
6060
61- pattern Noop'' :: T. Term Python v
62- pattern Noop'' = Noop' T. :$: T. Nil
61+ pattern Noop :: T. Term Python v
62+ pattern Noop = Noop' T. :$: T. Nil
6363
64- pattern Iff'' :: T. Term Python v -> T. Term Python v -> T. Term Python v -> T. Term Python v
65- pattern Iff'' c t e = Iff' T. :$: T. Cons c (T. Cons t (T. Cons e T. Nil ))
64+ pattern Iff :: T. Term Python v -> T. Term Python v -> T. Term Python v -> T. Term Python v
65+ pattern Iff c t e = Iff' T. :$: T. Cons c (T. Cons t (T. Cons e T. Nil ))
6666
67- pattern Bool'' :: Bool -> T. Term Python v
68- pattern Bool'' b = Bool' b T. :$: T. Nil
67+ pattern Bool :: Bool -> T. Term Python v
68+ pattern Bool b = Bool' b T. :$: T. Nil
6969
70- pattern String'' :: Text -> T. Term Python v
71- pattern String'' t = String' t T. :$: T. Nil
70+ pattern String :: Text -> T. Term Python v
71+ pattern String t = String' t T. :$: T. Nil
7272
73- pattern Throw'' :: T. Term Python v -> T. Term Python v
74- pattern Throw'' e = Throw' T. :$: T. Cons e T. Nil
73+ pattern Throw :: T. Term Python v -> T. Term Python v
74+ pattern Throw e = Throw' T. :$: T. Cons e T. Nil
7575
76- pattern Let'' :: Name -> T. Term Python v -> T. Term Python v -> T. Term Python v
77- pattern Let'' n v b = Let' n T. :$: T. Cons v (T. Cons b T. Nil )
76+ pattern Let :: Name -> T. Term Python v -> T. Term Python v -> T. Term Python v
77+ pattern Let n v b = Let' n T. :$: T. Cons v (T. Cons b T. Nil )
7878
79- pattern (:>>>> ) :: T. Term Python v -> T. Term Python v -> T. Term Python v
80- pattern s :>>>> t = (:>>>) T. :$: T. Cons s (T. Cons t T. Nil )
79+ pattern (:>>) :: T. Term Python v -> T. Term Python v -> T. Term Python v
80+ pattern s :>> t = (:>>>) T. :$: T. Cons s (T. Cons t T. Nil )
8181
82- infixl 1 :>>>>
82+ infixl 1 :>>
8383
84- pattern Import'' :: NonEmpty Text -> T. Term Python v
85- pattern Import'' i = Import' i T. :$: T. Nil
84+ pattern Import :: NonEmpty Text -> T. Term Python v
85+ pattern Import i = Import' i T. :$: T. Nil
8686
87- pattern Function'' :: Name -> [Name ] -> T. Term Python v -> T. Term Python v
88- pattern Function'' n as b = Function' n as T. :$: T. Cons b T. Nil
87+ pattern Function :: Name -> [Name ] -> T. Term Python v -> T. Term Python v
88+ pattern Function n as b = Function' n as T. :$: T. Cons b T. Nil
8989
90- pattern Call''
90+ pattern Call
9191 :: T. Term Python v
9292 -> [T. Term Python v ]
9393 -> T. Term Python v
94- pattern Call'' f as <- Call' T. :$: T. Cons f (T. Cons (fromArgs -> as) T. Nil )
95- where Call'' f as = Call' T. :$: T. Cons f (T. Cons (foldr ACons'' ANil'' as) T. Nil )
94+ pattern Call f as <- Call' T. :$: T. Cons f (T. Cons (fromArgs -> as) T. Nil )
95+ where Call f as = Call' T. :$: T. Cons f (T. Cons (foldr ACons ANil as) T. Nil )
9696
9797fromArgs :: T. Term Python v -> [T. Term Python v ]
9898fromArgs = \ case
99- ANil'' -> []
100- ACons'' a as -> a: fromArgs as
99+ ANil -> []
100+ ACons a as -> a: fromArgs as
101101 _ -> fail " unexpected constructor in spine of argument list"
102102
103- pattern ANil'' :: T. Term Python v
104- pattern ANil'' = ANil' T. :$: T. Nil
103+ pattern ANil :: T. Term Python v
104+ pattern ANil = ANil' T. :$: T. Nil
105105
106- pattern ACons'' :: T. Term Python v -> T. Term Python v -> T. Term Python v
107- pattern ACons'' a as = ACons' T. :$: T. Cons a (T. Cons as T. Nil )
106+ pattern ACons :: T. Term Python v -> T. Term Python v -> T. Term Python v
107+ pattern ACons a as = ACons' T. :$: T. Cons a (T. Cons as T. Nil )
108108
109- pattern Locate'' :: Span -> T. Term Python v -> T. Term Python v
110- pattern Locate'' s t = Locate' s T. :$: T. Cons t T. Nil
109+ pattern Locate :: Span -> T. Term Python v -> T. Term Python v
110+ pattern Locate s t = Locate' s T. :$: T. Cons t T. Nil
111111
112- {-# COMPLETE Noop'' , Iff'' , Bool'' , String'' , Throw'' , Let'' , (:>>>> ), Import'' , Function'' , Call'' , Locate'' #-}
112+ {-# COMPLETE Noop, Iff, Bool, String, Throw, Let, (:>>), Import, Function, Call, Locate #-}
113113
114114
115115-- Abstract interpretation
@@ -123,26 +123,26 @@ eval
123123 -> (T. Term Python Name -> m val )
124124eval eval = \ case
125125 T. Var n -> lookupEnv n >>= maybe (dvar n) fetch
126- Noop'' -> dunit
127- Iff'' c t e -> do
126+ Noop -> dunit
127+ Iff c t e -> do
128128 c' <- eval c
129129 dif c' (eval t) (eval e)
130- Bool'' b -> dbool b
131- String'' s -> dstring s
132- Throw'' e -> eval e >>= ddie
133- Let'' n v b -> do
130+ Bool b -> dbool b
131+ String s -> dstring s
132+ Throw e -> eval e >>= ddie
133+ Let n v b -> do
134134 v' <- eval v
135135 let' n v' (eval b)
136- t :>>>> u -> do
136+ t :>> u -> do
137137 t' <- eval t
138138 u' <- eval u
139139 t' >>> u'
140- Import'' ns -> S. simport ns >> dunit
141- Function'' n ps b -> letrec n (dabs ps (foldr (\ (p, a) m -> let' p a m) (eval b) . zip ps))
142- Call'' f as -> do
140+ Import ns -> S. simport ns >> dunit
141+ Function n ps b -> letrec n (dabs ps (foldr (\ (p, a) m -> let' p a m) (eval b) . zip ps))
142+ Call f as -> do
143143 f' <- eval f
144144 as' <- traverse eval as
145145 dapp f' as'
146- Locate'' s t -> local (setSpan s) (eval t)
146+ Locate s t -> local (setSpan s) (eval t)
147147 where
148148 setSpan s r = r{ refSpan = s }
0 commit comments