comparison src/elab_util.sml @ 1199:c316ca3c9ec6

Pushing policies through
author Adam Chlipala <adamc@hcoop.net>
date Sun, 04 Apr 2010 12:29:34 -0400
parents 0657e5adc938
children 56bd4a4f6e66
comparison
equal deleted inserted replaced
1197:6d8e3dcb9713 1199:c316ca3c9ec6
852 | DCookie (tn, x, n, c) => 852 | DCookie (tn, x, n, c) =>
853 bind (ctx, NamedE (x, (CApp ((CModProj (n, [], "cookie"), loc), 853 bind (ctx, NamedE (x, (CApp ((CModProj (n, [], "cookie"), loc),
854 c), loc))) 854 c), loc)))
855 | DStyle (tn, x, n) => 855 | DStyle (tn, x, n) =>
856 bind (ctx, NamedE (x, (CModProj (n, [], "css_class"), loc))) 856 bind (ctx, NamedE (x, (CModProj (n, [], "css_class"), loc)))
857 | DTask _ => ctx, 857 | DTask _ => ctx
858 | DPolicy _ => ctx,
858 mfd ctx d)) ctx ds, 859 mfd ctx d)) ctx ds,
859 fn ds' => (StrConst ds', loc)) 860 fn ds' => (StrConst ds', loc))
860 | StrVar _ => S.return2 strAll 861 | StrVar _ => S.return2 strAll
861 | StrProj (str, x) => 862 | StrProj (str, x) =>
862 S.map2 (mfst ctx str, 863 S.map2 (mfst ctx str,
983 S.bind2 (mfe ctx e1, 984 S.bind2 (mfe ctx e1,
984 fn e1' => 985 fn e1' =>
985 S.map2 (mfe ctx e2, 986 S.map2 (mfe ctx e2,
986 fn e2' => 987 fn e2' =>
987 (DTask (e1', e2'), loc))) 988 (DTask (e1', e2'), loc)))
989 | DPolicy e1 =>
990 S.map2 (mfe ctx e1,
991 fn e1' =>
992 (DPolicy e1', loc))
988 993
989 and mfvi ctx (x, n, c, e) = 994 and mfvi ctx (x, n, c, e) =
990 S.bind2 (mfc ctx c, 995 S.bind2 (mfc ctx c,
991 fn c' => 996 fn c' =>
992 S.map2 (mfe ctx e, 997 S.map2 (mfe ctx e,
1126 | DView (n1, _, n2, _, _) => Int.max (n1, n2) 1131 | DView (n1, _, n2, _, _) => Int.max (n1, n2)
1127 | DDatabase _ => 0 1132 | DDatabase _ => 0
1128 | DCookie (n1, _, n2, _) => Int.max (n1, n2) 1133 | DCookie (n1, _, n2, _) => Int.max (n1, n2)
1129 | DStyle (n1, _, n2) => Int.max (n1, n2) 1134 | DStyle (n1, _, n2) => Int.max (n1, n2)
1130 | DTask _ => 0 1135 | DTask _ => 0
1136 | DPolicy _ => 0
1131 and maxNameStr (str, _) = 1137 and maxNameStr (str, _) =
1132 case str of 1138 case str of
1133 StrConst ds => maxName ds 1139 StrConst ds => maxName ds
1134 | StrVar n => n 1140 | StrVar n => n
1135 | StrProj (str, _) => maxNameStr str 1141 | StrProj (str, _) => maxNameStr str