blob: cc8c13a84bfe89ab3e34aedceaf33517d12145c4 (
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
|
(************************************************************************)
(* * The Coq Proof Assistant / The Coq Development Team *)
(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
(* <O___,, * (see CREDITS file for the list of authors) *)
(* \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) *)
(************************************************************************)
DECLARE PLUGIN "string_notation_plugin"
{
open String_notation
open Names
open Stdarg
}
VERNAC COMMAND EXTEND StringNotation CLASSIFIED AS SIDEFF
| #[ locality = Attributes.locality; ] ![proof] [ "String" "Notation" reference(ty) reference(f) reference(g) ":"
ident(sc) ] ->
{ (* It is a bug to use the proof context here, but at the request of
* the reviewers we keep this broken behavior for now. The Global env
* should be used instead, and the `env, sigma` parameteter to the
* numeral notation command removed.
*)
fun ~pstate ->
let sigma, env = match pstate with
| None ->
let env = Global.env () in
let sigma = Evd.from_env env in
sigma, env
| Some pstate ->
Pfedit.get_current_context pstate
in
vernac_string_notation env sigma (Locality.make_module_locality locality) ty f g (Id.to_string sc);
pstate }
END
|