Some Cgen fixes.
This commit is contained in:
parent
eda43043d5
commit
43b8bc15b0
|
@ -56,35 +56,20 @@ let rec struct_name ty =
|
||||||
| _ -> assert false
|
| _ -> assert false
|
||||||
|
|
||||||
let int_of_static_exp se =
|
let int_of_static_exp se =
|
||||||
Static.int_of_static_exp NamesEnv.empty se
|
Static.int_of_static_exp QualEnv.empty se
|
||||||
|
|
||||||
(** Returns the information concerning a node given by name. *)
|
|
||||||
let node_info {qual = modname; name = modname_name } =
|
|
||||||
try
|
|
||||||
modname, find_value {qual = modname; name = modname_name }
|
|
||||||
with Not_found ->
|
|
||||||
(* name might be of the form Module.name, remove the module name*)
|
|
||||||
(*let ind_name = (String.length modname) + 1 in
|
|
||||||
let name = String.sub modname_name ind_name
|
|
||||||
((String.length modname_name)-ind_name) in
|
|
||||||
begin try
|
|
||||||
modname, find_value (Modname({qual = modname;
|
|
||||||
id = name }))
|
|
||||||
with Not_found ->*)
|
|
||||||
Error.message no_location (Error.Enode modname)
|
|
||||||
(*end *)
|
|
||||||
|
|
||||||
let output_names_list sig_info =
|
let output_names_list sig_info =
|
||||||
let remove_option ad = match ad.a_name with
|
let remove_option ad = match ad.a_name with
|
||||||
| Some n -> n
|
| Some n -> n
|
||||||
| None -> Error.message no_location Error.Eno_unnamed_output
|
| None -> Error.message no_location Error.Eno_unnamed_output
|
||||||
in
|
in
|
||||||
List.map remove_option sig_info.info.node_outputs
|
List.map remove_option sig_info.node_outputs
|
||||||
|
|
||||||
let is_statefull n =
|
let is_statefull n =
|
||||||
try
|
try
|
||||||
let _, sig_info = node_info n in
|
let sig_info = find_value n in
|
||||||
sig_info.info.node_statefull
|
sig_info.node_statefull
|
||||||
with
|
with
|
||||||
Not_found -> Error.message no_location (Error.Enode (fullname n))
|
Not_found -> Error.message no_location (Error.Enode (fullname n))
|
||||||
|
|
||||||
|
@ -370,7 +355,7 @@ let generate_function_call var_env obj_env outvl objn args =
|
||||||
(** Class name for the object to step. *)
|
(** Class name for the object to step. *)
|
||||||
let classln = assoc_cn objn obj_env in
|
let classln = assoc_cn objn obj_env in
|
||||||
let classn = shortname classln in
|
let classn = shortname classln in
|
||||||
let mod_classn, sig_info = node_info classln in
|
let sig_info = find_value classln in
|
||||||
let out = Cvar (out_var_name_of_objn classn) in
|
let out = Cvar (out_var_name_of_objn classn) in
|
||||||
|
|
||||||
let fun_call =
|
let fun_call =
|
||||||
|
|
Loading…
Reference in a new issue