let sast_to_cast klass_data (klasses : Sast.class_def list) : Cast.program =
let (funcs, mains) = sast_functions klasses in
let main_case (f : Sast.func_def) = (f.inklass, get_fname f) in
let cfuncs = List.map sast_to_cast_func funcs in
let main_switch = List.map main_case mains in
let struct_map = build_class_struct_map klass_data klasses in
let ancestor_data = klass_data.ancestors in
(struct_map, cfuncs, main_switch, StringMap.map List.rev ancestor_data)