blob: 7931dba01e06c3d2dd3e99828d6876d32799e2d9 (
plain)
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
|
(***********************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
(* <O___,, * INRIA-Rocquencourt & LRI-CNRS-Orsay *)
(* \VV/ *************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
(***********************************************************************)
(*i $Id$ i*)
open Vernacinterp
open Names
open Libnames
(*s AutoInline parameter *)
val auto_inline : unit -> bool
(*s Optimize parameter *)
val optim : unit -> bool
(*s Set and Map over global reference *)
module Refset : Set.S with type elt = global_reference
module Refmap : Map.S with type key = global_reference
(*s Target language. *)
type lang = Ocaml | Haskell | Scheme | Toplevel
val lang : unit -> lang
(*s Table for custom inlining *)
val to_inline : global_reference -> bool
val to_keep : global_reference -> bool
(*s Table for direct ML extractions. *)
val is_ml_extraction : global_reference -> bool
val find_ml_extraction : global_reference -> string
val ml_extractions : unit -> Refset.t
val ml_type_extractions : unit -> (global_reference * string) list
val ml_term_extractions : unit -> (global_reference * string) list
(*s Extraction commands. *)
open Util
val extraction_language : lang -> unit
val extraction_inline : bool -> qualid located list -> unit
val print_extraction_inline : unit -> unit
val reset_extraction_inline : unit -> unit
val extract_constant_inline : bool -> qualid located -> string -> unit
val extract_inductive : qualid located -> string * string list -> unit
|