1121 >> (fn path => (serializer o mk_module_file postprocess_module ext) (Path.unpack path))); |
1121 >> (fn path => (serializer o mk_module_file postprocess_module ext) (Path.unpack path))); |
1122 |
1122 |
1123 fun parse_internal serializer = |
1123 fun parse_internal serializer = |
1124 parse_args (Args.name |
1124 parse_args (Args.name |
1125 >> (fn "-" => serializer |
1125 >> (fn "-" => serializer |
1126 (fn "" => (fn p => (use_text Context.ml_output false (Pretty.output p); NONE)) |
1126 (fn "" => (fn p => (use_text Output.ml_output false (Pretty.output p); NONE)) |
1127 | _ => SOME) |
1127 | _ => SOME) |
1128 | _ => Scan.fail ())); |
1128 | _ => Scan.fail ())); |
1129 |
1129 |
1130 fun parse_stdout serializer = |
1130 fun parse_stdout serializer = |
1131 parse_args (Args.name |
1131 parse_args (Args.name |
1239 val struct_name = "EVAL"; |
1239 val struct_name = "EVAL"; |
1240 fun output p = if !eval_verbose then (Pretty.writeln p; Pretty.output p) |
1240 fun output p = if !eval_verbose then (Pretty.writeln p; Pretty.output p) |
1241 else Pretty.output p; |
1241 else Pretty.output p; |
1242 val serializer = ml_serializer struct_name "SML" [[nsp_module], [nsp_class, nsp_tyco], |
1242 val serializer = ml_serializer struct_name "SML" [[nsp_module], [nsp_class, nsp_tyco], |
1243 [nsp_fun, nsp_dtco, nsp_class, nsp_classop, nsp_inst], [nsp_eval]] |
1243 [nsp_fun, nsp_dtco, nsp_class, nsp_classop, nsp_inst], [nsp_eval]] |
1244 (fn "" => (fn p => (use_text Context.ml_output (!eval_verbose) (output p); NONE)) |
1244 (fn "" => (fn p => (use_text Output.ml_output (!eval_verbose) (output p); NONE)) |
1245 | _ => SOME) data |
1245 | _ => SOME) data |
1246 (hidden, SOME [NameSpace.pack [nsp_eval, val_name]]); |
1246 (hidden, SOME [NameSpace.pack [nsp_eval, val_name]]); |
1247 val _ = serializer code'; |
1247 val _ = serializer code'; |
1248 val val_name_struct = NameSpace.append struct_name val_name; |
1248 val val_name_struct = NameSpace.append struct_name val_name; |
1249 val _ = reff := NONE; |
1249 val _ = reff := NONE; |
1250 val _ = use_text Context.ml_output (!eval_verbose) ("val _ = (" ^ ref_name ^ " := SOME (" ^ val_name_struct ^ "))"); |
1250 val _ = use_text Output.ml_output (!eval_verbose) ("val _ = (" ^ ref_name ^ " := SOME (" ^ val_name_struct ^ "))"); |
1251 in case !reff |
1251 in case !reff |
1252 of NONE => error ("Could not retrieve value of ML reference " ^ quote ref_name |
1252 of NONE => error ("Could not retrieve value of ML reference " ^ quote ref_name |
1253 ^ " (reference probably has been shadowed)") |
1253 ^ " (reference probably has been shadowed)") |
1254 | SOME value => value |
1254 | SOME value => value |
1255 end; |
1255 end; |