You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
evalTransformRaw ((convInstance s)::Instancevartysymenfkattgenskxy) t r is
247
+
evalTransform prog env (TransformSigma f' i o) =do
248
+
(MappingEx (f'' ::Mappingvartysymenfkatten'fk'att')) <- evalMapping prog env f'
249
+
(TransformEx (i' ::Transformvar''ty''sym''en''fk''att''genskxygen'sk'x'y')) <- evalTransform prog env i
250
+
o' <- toOptions o
251
+
r <- evalSigmaTrans f'' (fromJust $ ((cast i') ::Maybe (Transformvartysymenfkattgenskxygen'sk'x'y'))) o'
252
+
pure$TransformEx r
253
+
evalTransform prog env (TransformDelta f' i o) =do
254
+
(MappingEx (f'' ::Mappingvartysymen'fk'att'enfkatt)) <- evalMapping prog env f'
255
+
(TransformEx (i' ::Transformvar''ty''sym''en''fk''att''genskxygen'sk'x'y')) <- evalTransform prog env i
256
+
o' <- toOptions o
257
+
r <- evalDeltaTrans f'' (fromJust $ ((cast i') ::Maybe (Transformvartysymenfkattgenskxygen'sk'x'y'))) o'
258
+
pure$TransformEx r
259
+
evalTransform prog env (TransformSigmaDeltaUnit f' i o) =do
260
+
(MappingEx (f'' ::Mappingvartysymenfkatten'fk'att')) <- evalMapping prog env f'
261
+
(InstanceEx (i' ::Instancevar''ty''sym''en''fk''att''genskxy)) <- evalInstance prog env i
262
+
o' <- toOptions o
263
+
r <- evalDeltaSigmaUnit f'' (fromJust $ ((cast i') ::Maybe (Instancevartysymenfkattgenskxy))) o'
264
+
pure$TransformEx r
265
+
evalTransform prog env (TransformSigmaDeltaCoUnit f' i o) =do
266
+
(MappingEx (f'' ::Mappingvartysymenfkatten'fk'att')) <- evalMapping prog env f'
267
+
(InstanceEx (i' ::Instancevar''ty''sym''en''fk''att''genskxy)) <- evalInstance prog env i
268
+
o' <- toOptions o
269
+
r <- evalDeltaSigmaCoUnit f'' (fromJust $ ((cast i') ::Maybe (Instancevartysymen'fk'att'genskxy))) o'
270
+
pure$TransformEx r
271
271
272
272
evalTransform _ _ _ =undefined
273
273
274
274
275
275
evalMapping::Prog->Env->MappingExp->ErrMappingEx
276
276
evalMapping _ env (MappingVar v) = note ("Could not find "++show v ++" in ctx") $Map.lookup v $ mappings env
277
-
evalMapping p env (MappingId s) =do (SchemaEx s') <- evalSchema p env s
278
-
return$MappingEx$Prelude.foldr (\en' (Mapping s'' t e f' a) ->Mapping s'' t (Map.insert en' en' e) (f'' en' s' f') (g' en' s' a)) (Mapping s' s' Map.empty Map.empty Map.empty) (S.ens s')
279
-
where
280
-
--Prelude prefix necessary bc Set and Map also define foldr
281
-
f'' en' s' f''' =Prelude.foldr (\(fk,_) m ->Map.insert fk (Fk fk $Var()) m) f''' $ fksFrom' s' en'
282
-
g' en' s' f''' =Prelude.foldr (\(fk,_) m ->Map.insert fk (Att fk $Var()) m) f''' $ attsFrom' s' en'
283
-
284
-
evalMapping p env (MappingRaw r) =do s0 <- evalSchema p env $ mapraw_src r
285
-
s1 <- evalSchema p env $ mapraw_dst r
286
-
ix <-mapM (evalMapping p env) $ mapraw_imports r
287
-
case s0 of
288
-
SchemaEx s ->case s1 of
289
-
SchemaEx (t::Schemavartysymenfkatt) ->
290
-
evalMappingRaw ((convSchema s) ::Schemavartysymenfkatt) t r ix
277
+
evalMapping p env (MappingId s) =do
278
+
(SchemaEx s') <- evalSchema p env s
279
+
pure$MappingEx$foldr (\en' (Mapping s'' t e f' a) ->Mapping s'' t (Map.insert en' en' e) (f'' en' s' f') (g' en' s' a)) (Mapping s' s' Map.empty Map.empty Map.empty) (S.ens s')
280
+
where
281
+
f'' en' s' f''' =foldr (\(fk,_) m ->Map.insert fk (Fk fk $Var()) m) f''' $ fksFrom' s' en'
282
+
g' en' s' f''' =foldr (\(fk,_) m ->Map.insert fk (Att fk $Var()) m) f''' $ attsFrom' s' en'
283
+
284
+
evalMapping p env (MappingRaw r) =do
285
+
s0 <- evalSchema p env $ mapraw_src r
286
+
s1 <- evalSchema p env $ mapraw_dst r
287
+
ix <-mapM (evalMapping p env) $ mapraw_imports r
288
+
case s0 of
289
+
SchemaEx s ->case s1 of
290
+
SchemaEx (t::Schemavartysymenfkatt) ->
291
+
evalMappingRaw ((convSchema s) ::Schemavartysymenfkatt) t r ix
0 commit comments