Mercurial > urweb
comparison src/explify.sml @ 171:c7a6e6dbc318
Elaborating some basic pattern matching
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 31 Jul 2008 10:06:27 -0400 |
parents | 06a98129b23f |
children | 33d4a8eea484 |
comparison
equal
deleted
inserted
replaced
170:a158f8c5aa55 | 171:c7a6e6dbc318 |
---|---|
87 {field = explifyCon field, rest = explifyCon rest}), loc) | 87 {field = explifyCon field, rest = explifyCon rest}), loc) |
88 | L.ECut (e1, c, {field, rest}) => (L'.ECut (explifyExp e1, explifyCon c, | 88 | L.ECut (e1, c, {field, rest}) => (L'.ECut (explifyExp e1, explifyCon c, |
89 {field = explifyCon field, rest = explifyCon rest}), loc) | 89 {field = explifyCon field, rest = explifyCon rest}), loc) |
90 | L.EFold k => (L'.EFold (explifyKind k), loc) | 90 | L.EFold k => (L'.EFold (explifyKind k), loc) |
91 | 91 |
92 | L.ECase _ => raise Fail "Explify ECase" | |
93 | |
92 | L.EError => raise Fail ("explifyExp: EError at " ^ EM.spanToString loc) | 94 | L.EError => raise Fail ("explifyExp: EError at " ^ EM.spanToString loc) |
93 | 95 |
94 fun explifySgi (sgi, loc) = | 96 fun explifySgi (sgi, loc) = |
95 case sgi of | 97 case sgi of |
96 L.SgiConAbs (x, n, k) => SOME (L'.SgiConAbs (x, n, explifyKind k), loc) | 98 L.SgiConAbs (x, n, k) => SOME (L'.SgiConAbs (x, n, explifyKind k), loc) |