let pretty_node fmt k =
let print_stmt fmt s =
let str =
match s.skind with
| Switch (exp,_,_,_) | If (exp,_,_,_) ->
Pretty_utils.sfprintf "%a" ! Ast_printer.d_exp exp
| Loop _ -> "while(1)"
| Block _ -> "block"
| Goto _ | Break _ | Continue _ | Return _ | Instr _ ->
Pretty_utils.sfprintf "@[<h 1>%a@]"
(Cil.defaultCilPrinter#pStmtKind s) s.skind
| UnspecifiedSequence _ -> "unspecified sequence"
| TryExcept _ | TryFinally _ -> "ERROR"
in
Format.fprintf fmt "%s" str
in
match k with
| CallStmt call ->
let call = call_from_id call in
Format.fprintf fmt "Call%d : %a" call.sid print_stmt call
| Stmt s -> print_stmt fmt s
| Label (_,l) -> Format.fprintf fmt "%a" !Ast_printer.d_label l
| VarDecl v -> Format.fprintf fmt "VarDecl : %a" !Ast_printer.d_var v
| SigKey k -> Format.fprintf fmt "%a" Signature.pretty_key k
| SigCallKey (call, sgn) ->
let call = call_from_id call in
Format.fprintf fmt "Call%d-%a : %a"
call.sid Signature.pretty_key sgn print_stmt call