package merlin-lib

  1. Overview
  2. Docs
Merlin's libraries

Install

Dune Dependency

Authors

Maintainers

Sources

merlin-5.3-502.tbz
sha256=2cea46f12397fa6e31ef0c0d4f5e11c1cfd916ee49420694005c95ebb3aa24bc
sha512=e94abb9ae38149245337db033e2c3891c7ec772168e99abf1bda0216a894c0854e7170b56fe88eba83ec98f2ebc0f5c7c723e8db14f59eeb6dd348bec12c6d62

doc/src/merlin-lib.ocaml_merlin_specific/tast_helper.ml.html

Source file tast_helper.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
open Typedtree

module Pat = struct
  let pat_extra = []
  let pat_attributes = []

  let constant ?(loc = Location.none) pat_env pat_type c =
    let pat_desc = Tpat_constant c in
    { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env }

  let var ?loc uid pat_env pat_type str =
    let pat_loc =
      match loc with
      | None -> str.Asttypes.loc
      | Some loc -> loc
    in
    let pat_desc = Tpat_var (Ident.create_local str.Asttypes.txt, str, uid) in
    { pat_desc; pat_loc; pat_extra; pat_attributes; pat_type; pat_env }

  let record ?(loc = Location.none) pat_env pat_type lst closed_flag =
    let pat_desc = Tpat_record (lst, closed_flag) in
    { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env }

  let tuple ?(loc = Location.none) pat_env pat_type lst =
    let pat_desc = Tpat_tuple lst in
    { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env }

  let construct ?(loc = Location.none) pat_env pat_type lid cstr_desc args
      locs_coretype =
    let pat_desc = Tpat_construct (lid, cstr_desc, args, locs_coretype) in
    { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env }

  let pat_or ?(loc = Location.none) ?row_desc pat_env pat_type p1 p2 =
    let pat_desc = Tpat_or (p1, p2, row_desc) in
    { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env }

  let variant ?(loc = Location.none) pat_env pat_type lbl sub rd =
    let pat_desc = Tpat_variant (lbl, sub, rd) in
    { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env }
end
OCaml

Innovation. Community. Security.