Mercurial > urweb
comparison src/elaborate.sml @ 8:a455a9f85cc3
Parsing basic expressions
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 26 Jan 2008 17:10:26 -0500 |
parents | 38bf996e1c2e |
children | 14b533dbe6cc |
comparison
equal
deleted
inserted
replaced
7:2ce5bf227d01 | 8:a455a9f85cc3 |
---|---|
217 in | 217 in |
218 checkKind env c1' k1 (L'.KArrow (dom, ran), loc); | 218 checkKind env c1' k1 (L'.KArrow (dom, ran), loc); |
219 checkKind env c2' k2 dom; | 219 checkKind env c2' k2 dom; |
220 ((L'.CApp (c1', c2'), loc), ran) | 220 ((L'.CApp (c1', c2'), loc), ran) |
221 end | 221 end |
222 | L.CAbs (e, x, k, t) => | 222 | L.CAbs (x, k, t) => |
223 let | 223 let |
224 val e' = elabExplicitness e | |
225 val k' = elabKind k | 224 val k' = elabKind k |
226 val env' = E.pushCRel env x k' | 225 val env' = E.pushCRel env x k' |
227 val (t', tk) = elabCon env' t | 226 val (t', tk) = elabCon env' t |
228 in | 227 in |
229 ((L'.CAbs (e', x, k', t'), loc), | 228 ((L'.CAbs (x, k', t'), loc), |
230 (L'.KArrow (k', tk), loc)) | 229 (L'.KArrow (k', tk), loc)) |
231 end | 230 end |
232 | 231 |
233 | L.CName s => | 232 | L.CName s => |
234 ((L'.CName s, loc), kname) | 233 ((L'.CName s, loc), kname) |