aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/elab_util.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-04-07 16:14:31 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-04-07 16:14:31 -0400
commit26ad31287745567b98b357de9793a0e795c63334 (patch)
tree6fa2aa05d829b2b71c6e2d778b4898999992a00f /src/elab_util.sml
parent98370da7e9f70e3d83f666019b765e15f617b846 (diff)
PRIMARY KEY
Diffstat (limited to 'src/elab_util.sml')
-rw-r--r--src/elab_util.sml22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/elab_util.sml b/src/elab_util.sml
index 32f399dc..ff4abbfb 100644
--- a/src/elab_util.sml
+++ b/src/elab_util.sml
@@ -766,11 +766,11 @@ fun mapfoldB {kind = fk, con = fc, exp = fe, sgn_item = fsgi, sgn = fsg, str = f
bind (ctx, Str (x, sgn))
| DConstraint _ => ctx
| DExport _ => ctx
- | DTable (tn, x, n, c, _, cc) =>
+ | DTable (tn, x, n, c, _, pc, _, cc) =>
let
val ct = (CModProj (n, [], "sql_table"), loc)
val ct = (CApp (ct, c), loc)
- val ct = (CApp (ct, cc), loc)
+ val ct = (CApp (ct, (CConcat (pc, cc), loc)), loc)
in
bind (ctx, NamedE (x, ct))
end
@@ -869,14 +869,18 @@ fun mapfoldB {kind = fk, con = fc, exp = fe, sgn_item = fsgi, sgn = fsg, str = f
fn str' =>
(DExport (en, sgn', str'), loc)))
- | DTable (tn, x, n, c, e, cc) =>
+ | DTable (tn, x, n, c, pe, pc, ce, cc) =>
S.bind2 (mfc ctx c,
fn c' =>
- S.bind2 (mfe ctx e,
- fn e' =>
- S.map2 (mfc ctx cc,
- fn cc' =>
- (DTable (tn, x, n, c', e', cc'), loc))))
+ S.bind2 (mfe ctx pe,
+ fn pe' =>
+ S.bind2 (mfc ctx pc,
+ fn pc' =>
+ S.bind2 (mfe ctx ce,
+ fn ce' =>
+ S.map2 (mfc ctx cc,
+ fn cc' =>
+ (DTable (tn, x, n, c', pe', pc', ce', cc'), loc))))))
| DSequence _ => S.return2 dAll
| DClass (x, n, k, c) =>
@@ -1027,7 +1031,7 @@ and maxNameDecl (d, _) =
| DConstraint _ => 0
| DClass (_, n, _, _) => n
| DExport _ => 0
- | DTable (n1, _, n2, _, _, _) => Int.max (n1, n2)
+ | DTable (n1, _, n2, _, _, _, _, _) => Int.max (n1, n2)
| DSequence (n1, _, n2) => Int.max (n1, n2)
| DDatabase _ => 0
| DCookie (n1, _, n2, _) => Int.max (n1, n2)