aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2015-10-25 18:43:32 +0100
committerPierre-Marie Pédrot2015-10-26 11:42:20 +0100
commit010775eba60ea89645792b48a0686ff15c4ebcb5 (patch)
tree5edfed592e117b4b2e3174cb8ca2641bbc4c2347 /dev
parentaf89d24f9d54b18068046545af1268dffbeb3e07 (diff)
Pcoq entries are given a proper module.
Entries defined in the Pcoq AST of symbols must be marshallable, because they are present in the libstack. Yet, CAMLP4/5 entries are not marshallable as they contain functional values. This is why the Pcoq module used a pair [string * string] to describe entries. It is obviously type-unsafe, so we define a new abstract type in its own module. There is a little issue though, which is that our entries and CAMLP4/5 entries must be kept synchronized through an association table. The Pcoq module tries to maintain this invariant.
Diffstat (limited to 'dev')
-rw-r--r--dev/printers.mllib1
-rw-r--r--dev/top_printers.ml4
2 files changed, 3 insertions, 2 deletions
diff --git a/dev/printers.mllib b/dev/printers.mllib
index de43efa670..1a2819feb2 100644
--- a/dev/printers.mllib
+++ b/dev/printers.mllib
@@ -191,6 +191,7 @@ Pfedit
Tactic_debug
Decl_mode
Ppconstr
+Entry
Pcoq
Printer
Pptactic
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 1d3d711ac7..7b807a343a 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -519,7 +519,7 @@ let _ =
extend_vernac_command_grammar ("PrintConstr", 0) None
[GramTerminal "PrintConstr";
GramNonTerminal
- (Loc.ghost,ConstrArgType,Aentry ("constr","constr"),
+ (Loc.ghost,ConstrArgType,Aentry (Entry.unsafe_of_name ("constr","constr")),
Some (Names.Id.of_string "c"))]
let _ =
@@ -536,7 +536,7 @@ let _ =
extend_vernac_command_grammar ("PrintPureConstr", 0) None
[GramTerminal "PrintPureConstr";
GramNonTerminal
- (Loc.ghost,ConstrArgType,Aentry ("constr","constr"),
+ (Loc.ghost,ConstrArgType,Aentry (Entry.unsafe_of_name ("constr","constr")),
Some (Names.Id.of_string "c"))]
(* Setting printer of unbound global reference *)