Mercurial > urweb
comparison src/cjrize.sml @ 185:19ee24bffbc0
FFI datatypes
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 03 Aug 2008 17:57:47 -0400 |
parents | d11754ffe252 |
children | 88d46972de53 |
comparison
equal
deleted
inserted
replaced
184:98c29e3986d3 | 185:19ee24bffbc0 |
---|---|
141 fun cifyExp ((e, loc), sm) = | 141 fun cifyExp ((e, loc), sm) = |
142 case e of | 142 case e of |
143 L.EPrim p => ((L'.EPrim p, loc), sm) | 143 L.EPrim p => ((L'.EPrim p, loc), sm) |
144 | L.ERel n => ((L'.ERel n, loc), sm) | 144 | L.ERel n => ((L'.ERel n, loc), sm) |
145 | L.ENamed n => ((L'.ENamed n, loc), sm) | 145 | L.ENamed n => ((L'.ENamed n, loc), sm) |
146 | L.ECon (n, eo) => | 146 | L.ECon (pc, eo) => |
147 let | 147 let |
148 val (eo, sm) = | 148 val (eo, sm) = |
149 case eo of | 149 case eo of |
150 NONE => (NONE, sm) | 150 NONE => (NONE, sm) |
151 | SOME e => | 151 | SOME e => |
153 val (e, sm) = cifyExp (e, sm) | 153 val (e, sm) = cifyExp (e, sm) |
154 in | 154 in |
155 (SOME e, sm) | 155 (SOME e, sm) |
156 end | 156 end |
157 in | 157 in |
158 ((L'.ECon (n, eo), loc), sm) | 158 ((L'.ECon (cifyPatCon pc, eo), loc), sm) |
159 end | 159 end |
160 | L.EFfi mx => ((L'.EFfi mx, loc), sm) | 160 | L.EFfi mx => ((L'.EFfi mx, loc), sm) |
161 | L.EFfiApp (m, x, es) => | 161 | L.EFfiApp (m, x, es) => |
162 let | 162 let |
163 val (es, sm) = ListUtil.foldlMap cifyExp sm es | 163 val (es, sm) = ListUtil.foldlMap cifyExp sm es |