25 lines
473 B
OCaml
25 lines
473 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_defs cd =
|
|
List.map
|
|
(fun od ->
|
|
let name = async_global_var_name od in
|
|
let ty = Cty_id (qn_append od.o_class "_async") in
|
|
Cvardef (name, ty))
|
|
(filter_async_objs cd)
|
|
|
|
|