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