package comby

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

Install

Dune Dependency

Authors

Maintainers

Sources

1.4.0.tar.gz
md5=58295a68289d68231cb3c9e0377e44ef
sha512=3f0154f26cc6016c12f57d0b8e43da32b9329572bf67fb5719008eaf3377b8d5a2ab6f775ffe8d16bc85f2c4db52f567ef64da52ccb77d6ba8e496a0dc9eddf7

doc/src/comby.patdiff_kernel/file_name.ml.html

Source file file_name.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
open! Core_kernel
open! Import

type t =
  | Real of
      { real_name : string
      ; alt_name : string option
      }
  | Fake of string
[@@deriving compare, equal]

let real_name_exn = function
  | Real { real_name; alt_name = _ } -> real_name
  | Fake _ -> raise_s [%message "File_name.real_name_exn got a fake file"]
;;

let display_name = function
  | Real { real_name; alt_name } -> Option.value alt_name ~default:real_name
  | Fake name -> name
;;

let to_string_hum = display_name

let append t part =
  match t with
  | Real { real_name; alt_name } ->
    Real
      { real_name = Filename.concat real_name part
      ; alt_name = Option.map alt_name ~f:(fun name -> Filename.concat name part)
      }
  | Fake name -> Fake (Filename.concat name part)
;;

let dev_null = Real { real_name = "/dev/null"; alt_name = None }
OCaml

Innovation. Community. Security.