diff src/elaborate.sml @ 48:0a5c312de09a

Start of FFI
author Adam Chlipala <adamc@hcoop.net>
date Sun, 22 Jun 2008 09:27:29 -0400
parents 44a1bc863f0f
children d3cc191cb25f
line wrap: on
line diff
--- a/src/elaborate.sml	Thu Jun 19 18:13:33 2008 -0400
+++ b/src/elaborate.sml	Sun Jun 22 09:27:29 2008 -0400
@@ -1160,6 +1160,7 @@
       | L'.DVal (x, n, t, _) => SOME (L'.SgiVal (x, n, t), loc)
       | L'.DSgn _ => NONE
       | L'.DStr (x, n, sgn, _) => SOME (L'.SgiStr (x, n, sgn), loc)
+      | L'.DFfiStr (x, n, sgn) => SOME (L'.SgiStr (x, n, sgn), loc)
 
 fun subSgn env sgn1 (sgn2 as (_, loc2)) =
     case (#1 (hnormSgn env sgn1), #1 (hnormSgn env sgn2)) of
@@ -1403,6 +1404,15 @@
 
                 ((L'.DStr (x, n, sgn', str'), loc), env')
             end
+
+          | L.DFfiStr (x, sgn) =>
+            let
+                val sgn' = elabSgn env sgn
+
+                val (env', n) = E.pushStrNamed env x sgn'
+            in
+                ((L'.DFfiStr (x, n, sgn'), loc), env')
+            end
     end
 
 and elabStr env (str, loc) =