package coq-serapi
Serialization library and protocol for machine interaction with the Coq proof assistant
Install
Dune Dependency
Authors
Maintainers
Sources
coq-serapi-8.19.0.0.19.2.tbz
sha256=2106a7f8bc1b38a2a0da6f9425aa21a57c508771da75c59c0b08481e9ec9a083
sha512=a09a6d6f37724bf5aa0166e7064e703a8e8d4d939a474353b515bb55b764b988a18a5979a0eba97d9bbc12d89502aeec0788f35c5c8e6917845046e90737b5fc
doc/src/coq-serapi.serapi_v8_14/serapi_pp.ml.html
Source file serapi_pp.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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************) (************************************************************************) (* SerAPI: Coq interaction protocol with bidirectional serialization *) (************************************************************************) (* Copyright 2016-2019 MINES ParisTech -- License LGPL 2.1+ *) (* Copyright 2019-2023 Inria -- License LGPL 2.1+ *) (* Written by: Emilio J. Gallego Arias and others *) (************************************************************************) open Format (** This module includes all of sertop custom Format-based printers for Coq datatypes *) type 'a pp = formatter -> 'a -> unit (************************************************************************) (* Print Helpers *) (************************************************************************) let pp_str fmt str = fprintf fmt "%s" str let pp_opt pp fmt opt = match opt with | None -> () | Some x -> fprintf fmt "%a" pp x let rec pp_list ?sep pp fmt l = match l with [] -> fprintf fmt "" | csx :: [] -> fprintf fmt "@[%a@]" pp csx | csx :: csl -> fprintf fmt "@[%a@]%a@;%a" pp csx (pp_opt pp_str) sep (pp_list ?sep pp) csl (************************************************************************) (* Statid *) (************************************************************************) let pp_stateid fmt id = fprintf fmt "%d" (Stateid.to_int id) (************************************************************************) (* Feedback *) (************************************************************************) let pp_feedback_content fmt fb = let open Feedback in match fb with (* STM mandatory data (must be displayed) *) | Processed -> fprintf fmt "Processed" | Incomplete -> fprintf fmt "Incomplete" | Complete -> fprintf fmt "Complete" (* STM optional data *) | ProcessingIn s -> fprintf fmt "ProcessingIn: %s" s | InProgress d -> fprintf fmt "InProgress: %d" d | WorkerStatus(w1, w2) -> fprintf fmt "WorkerStatus: %s, %s" w1 w2 (* Generally useful metadata *) | AddedAxiom -> fprintf fmt "AddedAxiom" | GlobRef (_loc, s1, s2, s3, s4) -> fprintf fmt "GlobRef: %s,%s,%s,%s" s1 s2 s3 s4 | GlobDef (_loc, s1, s2, s3) -> fprintf fmt "GlobDef: %s,%s,%s" s1 s2 s3 | FileDependency (os, s) -> fprintf fmt "FileDep: %a, %s" (pp_opt pp_str) os s | FileLoaded (s1, s2) -> fprintf fmt "FileLoaded: %s, %s" s1 s2 (* Extra metadata *) | Custom(_loc, msg, _xml) -> fprintf fmt "Custom: %s" msg (* Old generic messages *) | Message(_lvl, _loc, m) -> fprintf fmt "Msg: @[%a@]" Pp.pp_with m let pp_feedback fmt (fb : Feedback.feedback) = let open Feedback in fprintf fmt "feedback for [%a]: @[%a@]" pp_stateid fb.span_id pp_feedback_content fb.Feedback.contents (************************************************************************) (* Xml *) (************************************************************************) let pp_attr fmt (xtag, att) = fprintf fmt "%s = %s" xtag att let rec pp_xml fmt (xml : Xml_datatype.xml) = match xml with | Xml_datatype.Element (tag, att, more) -> fprintf fmt "@[<%s @[%a@]>@,%a@,</%s>@]" tag (pp_list pp_attr) att (pp_list pp_xml) more tag | Xml_datatype.PCData str -> fprintf fmt "%s" str
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>