src/Pure/Tools/nbe_codegen.ML
changeset 19482 9f11af8f7ef9
parent 19341 3414c04fbc39
child 19795 746274ca400b
equal deleted inserted replaced
19481:a6205c6203ea 19482:9f11af8f7ef9
   129           |> fold (fn (_, e) => CodegenThingol.add_constnames e) eqns
   129           |> fold (fn (_, e) => CodegenThingol.add_constnames e) eqns
   130           |> remove (op =) nm;
   130           |> remove (op =) nm;
   131         val globals = map lookup (filter defined funs);
   131         val globals = map lookup (filter defined funs);
   132         val default_eqn = ([params], S.app Eval_Constr (S.tup[S.quote nm,params]));
   132         val default_eqn = ([params], S.app Eval_Constr (S.tup[S.quote nm,params]));
   133         val code = S.eqns (MLname nm)
   133         val code = S.eqns (MLname nm)
   134                           (Library.flat(map (mk_eqn defined nm ar) eqns) 
   134                           (maps (mk_eqn defined nm ar) eqns @ [default_eqn])
   135                            @ [default_eqn])
       
   136         val register = tab_update
   135         val register = tab_update
   137             (S.app Eval_mk_Fun (S.tup[S.quote nm, MLname nm, string_of_int ar]))
   136             (S.app Eval_mk_Fun (S.tup[S.quote nm, MLname nm, string_of_int ar]))
   138       in
   137       in
   139         S.Let (globals @ [code]) register
   138         S.Let (globals @ [code]) register
   140       end
   139       end