# HG changeset patch # User Adam Chlipala # Date 1215968199 14400 # Node ID ff13d390ec60f9fe5f094fde3345642060754b9b # Parent 0644d3c3bedf0fb4995c78aa1edce3668df48aad Cjr ready for dispatch code generation diff -r 0644d3c3bedf -r ff13d390ec60 src/cjr.sml --- a/src/cjr.sml Sun Jul 13 12:51:58 2008 -0400 +++ b/src/cjr.sml Sun Jul 13 12:56:39 2008 -0400 @@ -61,6 +61,6 @@ withtype decl = decl' located -type file = decl list * int list +type file = decl list * (string * int) list end diff -r 0644d3c3bedf -r ff13d390ec60 src/cjr_print.sml --- a/src/cjr_print.sml Sun Jul 13 12:51:58 2008 -0400 +++ b/src/cjr_print.sml Sun Jul 13 12:56:39 2008 -0400 @@ -173,8 +173,12 @@ string "}"] end -fun p_page env n = box [p_enamed env n, - string "(lw_unit_v);"] +fun p_page env (s, n) = + box [string "/* ", + string s, + string " */ ", + p_enamed env n, + string "(lw_unit_v);"] fun p_file env (ds, ps) = let diff -r 0644d3c3bedf -r ff13d390ec60 src/mono.sml --- a/src/mono.sml Sun Jul 13 12:51:58 2008 -0400 +++ b/src/mono.sml Sun Jul 13 12:56:39 2008 -0400 @@ -61,7 +61,7 @@ datatype decl' = DVal of string * int * typ * exp * string - | DExport of int + | DExport of string * int withtype decl = decl' located diff -r 0644d3c3bedf -r ff13d390ec60 src/mono_print.sml --- a/src/mono_print.sml Sun Jul 13 12:51:58 2008 -0400 +++ b/src/mono_print.sml Sun Jul 13 12:56:39 2008 -0400 @@ -166,9 +166,12 @@ p_exp env e] end - | DExport n => box [string "export", - space, - p_enamed env n] + | DExport (s, n) => box [string "export", + space, + p_enamed env n, + space, + string "as", + string s] fun p_file env file = let diff -r 0644d3c3bedf -r ff13d390ec60 src/monoize.sml --- a/src/monoize.sml Sun Jul 13 12:51:58 2008 -0400 +++ b/src/monoize.sml Sun Jul 13 12:56:39 2008 -0400 @@ -228,7 +228,12 @@ L.DCon _ => NONE | L.DVal (x, n, t, e, s) => SOME (Env.pushENamed env x n t (SOME e) s, (L'.DVal (x, n, monoType env t, monoExp env e, s), loc)) - | L.DExport n => SOME (env, (L'.DExport n, loc)) + | L.DExport n => + let + val (_, _, _, s) = Env.lookupENamed env n + in + SOME (env, (L'.DExport (s, n), loc)) + end end fun monoize env ds =