Source file Explication.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
include ExplicationData

let dump_seg dump_tag = Utils.dump_pair (Utils.dump_option dump_tag) Utils.dump_string

let dump_line dump_tag fmt {tags; segments} =
  Format.fprintf fmt {|@[<1>{@[<2>tags=@,@[%a@]@];@ @[<2>segments=@ @[%a@]@]}@]|}
    (Utils.dump_list dump_tag) tags
    (Utils.dump_list (dump_seg dump_tag)) segments

let dump_block dump_tag fmt {begin_line_num; end_line_num; lines} =
  Format.fprintf fmt {|@[<1>{begin_line_num=%d;@ end_line_num=%d;@ @[<2>lines=@ @[%a@]@]}@]|}
    begin_line_num end_line_num
    (Utils.dump_list (dump_line dump_tag)) lines

let dump_part dump_tag fmt {source; blocks} =
  Format.fprintf fmt {|@[<1>{@[<2>source=@ %a@];@,@[<2>blocks=@ %a@]}@]|}
    Range.dump_source source
    (Utils.dump_list (dump_block dump_tag)) blocks

let dump dump_tag = Utils.dump_list (dump_part dump_tag)