let define_glibb program =
let new_func_stub name rett types =
(name, new_function name
(List.map (fun (t, var) ->
{
def_name = "";
def_type = t;
def_nature = Varb;
def_value = Variable;
def_pos = (-1, -1);
def_coord = [];
def_asm = Asm_none;
def_pass_by_ref = var;
}
) types) rett
{
block_env = create_environment ();
block_stts = [];
}
(-1, -1)
true)
in
let glibb_env =
[
new_func_stub "writeInt" Unit [Integer, false];
new_func_stub "writeBool" Unit [Boolean, false];
new_func_stub "readInt" Integer [];
]
in
(snd program).block_env <- concat_env false glibb_env (snd program).block_env