package reason

  1. Overview
  2. Docs
Reason: Syntax & Toolchain for OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

reason-3.14.0.tbz
sha256=1d09ba24a0594745ab6b38b4d5f81ead8565b73cb69ad46af1c2c26f8d324f00
sha512=542d63c99ab976d011ca39953c022bdd2120177d5905df7ee6ff9623ec4d52c09a323ff7aec95fba5e71611c3850a88172e1c2be94ce68d966b5680ddd436494

doc/src/reason.cmdliner/cmdliner_cmd.ml.html

Source file cmdliner_cmd.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
(*---------------------------------------------------------------------------
   Copyright (c) 2022 The cmdliner programmers. All rights reserved.
   SPDX-License-Identifier: ISC
  ---------------------------------------------------------------------------*)

(* Commands *)

(* Command info *)

type info = Cmdliner_info.Cmd.t
let info = Cmdliner_info.Cmd.v

type 'a t =
| Cmd of info * 'a Cmdliner_term.parser
| Group of info * ('a Cmdliner_term.parser option * 'a t list)

let get_info = function Cmd (i, _) | Group (i, _) -> i
let children_infos = function
| Cmd _ -> [] | Group (_, (_, cs)) -> List.map get_info cs

let v i (args, p) = Cmd (Cmdliner_info.Cmd.add_args i args, p)
let group ?default i cmds =
  let args, parser = match default with
  | None -> None, None | Some (args, p) -> Some args, Some p
  in
  let children = List.map get_info cmds in
  let i = Cmdliner_info.Cmd.with_children i ~args ~children in
  Group (i, (parser, cmds))

let name c = Cmdliner_info.Cmd.name (get_info c)
OCaml

Innovation. Community. Security.