package comby-kernel

  1. Overview
  2. Docs
A match engine for structural code search and replace that supports ~every language

Install

Dune Dependency

Authors

Maintainers

Sources

comby-kernel.1.7.0.tar.gz
md5=ee6556d8bd9b25ed0445ebe23862e48a
sha512=e6386c8ce5ef14bbcab2b0ead5b1edc39375438f56330d5f02e81e467afe6623a7e299f97f26008d77bbc62850c6dc63a7cbe5b81671b5183ff3adeee5946bb3

doc/src/comby-kernel.replacement/replacement.ml.html

Source file replacement.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
open Core_kernel

open Match

type t =
  { range : range
  ; replacement_content : string
  ; environment : environment
  }
[@@deriving yojson]

type result =
  { rewritten_source : string
  ; in_place_substitutions : t list
  }
[@@deriving yojson]

let empty_result =
  { rewritten_source = ""
  ; in_place_substitutions = []
  }
[@@deriving yojson]

let to_json ?path ?replacements ?rewritten_source ~diff () =
  let uri =
    match path with
    | Some path -> `String path
    | None -> `Null
  in
  match replacements, rewritten_source with
  | Some replacements, Some rewritten_source ->
    `Assoc
      [ "uri", uri
      ; "rewritten_source", `String rewritten_source
      ; "in_place_substitutions", `List (List.map ~f:to_yojson replacements)
      ; "diff", `String diff
      ]
  | _ ->
    `Assoc
      [ "uri", uri
      ; "diff", `String diff
      ]
OCaml

Innovation. Community. Security.