let rec parse_global_declarators ((sclass, default_tentative, is_typedef) as sclass') basetype binds ~env = function
[] -> binds
| PinitDecl(decl,init) :: tl ->
let id, ty, _ = decl_to_type ~env decl basetype in
let ty, einit, is_tentative =
match init with
None -> ty, None, default_tentative
| Some i ->
let ty, init = parse_initialization ~env i ty in
ty, Some init, false
in
let nid =
(add_global_binding_to_env id sclass (if is_typedef then TypeDefName ty else Var ty) ~is_tentative ~env) in
parse_global_declarators sclass' basetype
(binds @ [CTTdeclVariable(sclass, ty, nid, einit)]) ~env tl