method class_str_item =
fun f cst ->
let () = o#node f cst Ast.loc_of_class_str_item
in
match cst with
| Ast.CrNil _ -> ()
| Ast.CrSem (_, cst, (Ast.CrNil _)) |
Ast.CrSem (_, (Ast.CrNil _), cst) ->
o#class_str_item f cst
| Ast.CrSem (_, cst1, cst2) ->
(o#class_str_item f cst1;
cut f;
o#class_str_item f cst2)
| Ast.CrCtr (_, t1, t2) ->
pp f "@[<2>constraint %a =@ %a%(%)@]" o#ctyp t1
o#ctyp t2 semisep
| Ast.CrInh (_, ov, ce, "") ->
pp f "@[<2>inherit%a@ %a%(%)@]" o#override_flag ov
o#class_expr ce semisep
| Ast.CrInh (_, ov, ce, s) ->
pp f "@[<2>inherit%a@ %a as@ %a%(%)@]"
o#override_flag ov o#class_expr ce o#var s
semisep
| Ast.CrIni (_, e) ->
pp f "@[<2>initializer@ %a%(%)@]" o#expr e semisep
| Ast.CrMth (_, s, ov, pr, e, (Ast.TyNil _)) ->
pp f "@[<2>method%a %a%a =@ %a%(%)@]"
o#override_flag ov o#private_flag pr o#var s
o#expr e semisep
| Ast.CrMth (_, s, ov, pr, e, t) ->
pp f "@[<2>method%a %a%a :@ %a =@ %a%(%)@]"
o#override_flag ov o#private_flag pr o#var s
o#ctyp t o#expr e semisep
| Ast.CrVir (_, s, pr, t) ->
pp f "@[<2>method virtual@ %a%a :@ %a%(%)@]"
o#private_flag pr o#var s o#ctyp t semisep
| Ast.CrVvr (_, s, mu, t) ->
pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" o#value_val
o#mutable_flag mu o#var s o#ctyp t semisep
| Ast.CrVal (_, s, ov, mu, e) ->
pp f "@[<2>%s%a %a%a =@ %a%(%)@]" o#value_val
o#override_flag ov o#mutable_flag mu o#var s
o#expr e semisep
| Ast.CrAnt (_, s) -> pp f "%a%(%)" o#anti s semisep