File: Exposed.mli

package info (click to toggle)
ocamlformat 0.27.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,068 kB
  • sloc: ml: 61,288; pascal: 4,739; lisp: 229; sh: 217; makefile: 121
file content (39 lines) | stat: -rw-r--r-- 1,545 bytes parent folder | download
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
(**************************************************************************)
(*                                                                        *)
(*                              OCamlFormat                               *)
(*                                                                        *)
(*            Copyright (c) Facebook, Inc. and its affiliates.            *)
(*                                                                        *)
(*      This source code is licensed under the MIT license found in       *)
(*      the LICENSE file in the root directory of this source tree.       *)
(*                                                                        *)
(**************************************************************************)

(** Predicates for determining if an AST starts/ends with a [<]/[>] symbol
    (respectively) when printed.

    These are used to avoid emitting the sequences [\{<], [\[<], [>\}] and
    [>\]], which are reserved keywords. *)

open Extended_ast

(** Predicates for [<] on the LHS of printed AST nodes. *)
module Left : sig
  val core_type : core_type -> bool
end

module Right : sig
  (** Predicates for [>] on the RHS of printed AST nodes. *)

  val core_type : core_type -> bool

  val label_declaration : label_declaration -> bool

  val row_field : row_field -> bool

  val payload : payload -> bool

  val list : elt:('a -> bool) -> 'a list -> bool
  (** [list ~elt l] holds iff [elt] holds of the {i last} element in [l], and
      is [false] if [l] is empty. *)
end