Module Wax_utils.Source_mapSource

Sourcetype t
Sourcetype mapping = {
  1. generated_offset : int;
  2. original_file_idx : int;
  3. original_line : int;
  4. original_column : int;
}
Sourceval create : unit -> t
Sourceval register_file : t -> string -> int
Sourceval add_mapping : t -> generated_offset:int -> original_location:Ast.location -> unit

Map generated_offset to the start of original_location.

Sourceval add_mapping_at : t -> generated_offset:int -> position:Lexing.position -> unit

Map generated_offset to a specific source position — used to attach the closing end opcode of a block or expression to its end position.

Sourceval add_absent_mapping : t -> generated_offset:int -> unit

add_absent_mapping t ~generated_offset records that the code at generated_offset has no original location, emitting a segment that resets the mapping so the previous location does not bleed into it.

Sourcetype checkpoint
Sourceval checkpoint : t -> checkpoint

checkpoint t captures the set of mappings recorded so far, for a later shift_since. Mappings are recorded with generated offsets relative to whichever buffer is being encoded; a checkpoint plus shift_since rebases the ones added afterwards once their absolute file offset is known.

Sourceval shift_since : t -> checkpoint -> delta:int -> unit

shift_since t cp ~delta adds delta to the generated offset of every mapping recorded since the checkpoint cp.

Sourceval to_json : t -> file_name:string -> string