You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
706 B
OCaml

open Obc
open C
open Idents
open Names
let async_global_var_name od = "g_async__" ^ (name od.o_ident)
let filter_async_objs cd =
List.filter
(fun od ->
match od.o_ack with
| Some _ -> true
| None -> false)
cd.cd_objs
let async_global_objs_vars cd =
List.map
(fun od ->
let name = async_global_var_name od in
let ty = Cty_id (qn_append od.o_class "_async") in
name, ty)
(filter_async_objs cd)
let async_global_objs_defs cd =
List.map
(fun (name, ty) -> Cvardef (name, ty))
(async_global_objs_vars cd)
let async_global_objs_decls cd =
List.map
(fun (name, ty) -> Cdecl_extern (name, ty))
(async_global_objs_vars cd)