File: observer.ml

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (21 lines) | stat: -rw-r--r-- 642 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

let o = open_out "main.out"

let observe x =
  let open Classes in
  let open Event in
  let open Typeclasses in
  let open Hints in
  let p = Pp.string_of_ppcmds in
  match x with
  | NewClass { cl_impl } ->
      Printf.fprintf o "NewClass %s\n" (p (Printer.pr_global cl_impl))
  | NewInstance { instance ; info = { hint_priority }; locality } ->
      Printf.fprintf o "NewInstance %s %s %s\n"
        (p (Printer.pr_global instance))
        (p (Pp.pr_opt Pp.int hint_priority))
        (if locality = Local then "local" else "")

let obs = Classes.register_observer ~name:"test observer" observe

let () = Classes.activate_observer obs