(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) (* mt () | Warning n -> str "(warning after " ++ str n ++ str ")" | Abstract n -> str "(abstract after " ++ str n ++ str ")" } VERNAC ARGUMENT EXTEND numnotoption PRINTED BY { pr_numnot_option } | [ ] -> { Nop } | [ "(" "warning" "after" bigint(waft) ")" ] -> { Warning waft } | [ "(" "abstract" "after" bigint(n) ")" ] -> { Abstract n } END VERNAC COMMAND EXTEND NumeralNotation CLASSIFIED AS SIDEFF | #[ locality = Attributes.locality; ] ![proof][ "Numeral" "Notation" reference(ty) reference(f) reference(g) ":" ident(sc) numnotoption(o) ] -> { (* 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_numeral_notation env sigma (Locality.make_module_locality locality) ty f g (Id.to_string sc) o; pstate } END