let new_function name args t value pos ext =
{
def_name = name;
def_type = t;
def_nature = Funct;
def_value =
Function (
let p =
{
func_args = args;
func_value = value;
func_used = false;
func_asm_def = Asm_ir.proc_stub name (List.map (fun a -> Asm_ir.new_var_def Asm_ir.No_type (-1)) args) 0;
func_external = ext;
}
in
List.iter2 (fun a b -> a.def_asm <- Asm_var b) args p.func_asm_def.Asm_ir.proc_args;
value.block_env <- concat_env true (env_of_def_list args) value.block_env;
p
);
def_pos = pos;
def_coord = [];
def_asm = Asm_none;
def_pass_by_ref = false;
}