32 lines
652 B
OCaml
32 lines
652 B
OCaml
|
|
open Ast_cpp
|
|
|
|
(* the hooks *)
|
|
type visitor_in = {
|
|
kexpr: expression vin;
|
|
kstmt: statement vin;
|
|
kinit: initialiser vin;
|
|
ktypeC: typeC vin;
|
|
|
|
kclass_member: class_member vin;
|
|
kfieldkind: fieldkind vin;
|
|
|
|
kparameter: parameter vin;
|
|
kcompound: compound vin;
|
|
|
|
kclass_def: class_definition vin;
|
|
kfunc_def: func_definition vin;
|
|
kcpp: cpp_directive vin;
|
|
kblock_decl: block_declaration vin;
|
|
|
|
kdeclaration: declaration vin;
|
|
ktoplevel: toplevel vin;
|
|
|
|
kinfo: tok vin;
|
|
}
|
|
and visitor_out = any -> unit
|
|
and 'a vin = ('a -> unit) * visitor_out -> 'a -> unit
|
|
|
|
val default_visitor : visitor_in
|
|
|
|
val mk_visitor: visitor_in -> visitor_out
|