aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorMaxime Dénès2018-10-11 12:30:50 +0200
committerMaxime Dénès2018-10-11 12:30:50 +0200
commit4a244648cff78c7f7333ac5b335de3f6e742908a (patch)
tree717b267cc2e2ae1359bfcb2bb7f30b2f5bde9640 /dev
parent2bdc3a06c5620bf4796501562886b26f8c1ef895 (diff)
parentbc240341d9f0f7466c82e8ee9f3f325cda6fc3bf (diff)
Merge PR #8161: Implement VERNAC EXTEND in coqpp
Diffstat (limited to 'dev')
-rw-r--r--dev/doc/changes.md23
-rw-r--r--dev/top_printers.ml4
2 files changed, 24 insertions, 3 deletions
diff --git a/dev/doc/changes.md b/dev/doc/changes.md
index 7e64f80ac5..40013712fd 100644
--- a/dev/doc/changes.md
+++ b/dev/doc/changes.md
@@ -176,7 +176,28 @@ END
#### VERNAC EXTEND
-Not handled yet.
+Steps to perform:
+- replace the brackets enclosing OCaml code in actions and rule classifiers with
+ braces
+- if not there yet, add a leading `|̀ to the first rule
+
+Handwritten classifiers declared through the `CLASSIFIED BY` statement are
+considered OCaml code, so they also need to be wrapped in braces.
+
+For instance, code of the form:
+```
+VERNAC COMMAND EXTEND my_command CLASSIFIED BY classifier
+ [ "foo" int(i) ] => [ classif' ] -> [ cmd1 i ]
+| [ "bar" ] -> [ cmd2 ]
+END
+```
+should be turned into
+```
+VERNAC COMMAND EXTEND my_command CLASSIFIED BY { classifier }
+| [ "foo" int(i) ] => { classif' } -> { cmd1 i }
+| [ "bar" ] -> { cmd2 }
+END
+```
#### ARGUMENT EXTEND
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 8129a4a867..44d44ccc4b 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -527,7 +527,7 @@ let _ =
extend_vernac_command_grammar ("PrintConstr", 0) None
[GramTerminal "PrintConstr";
GramNonTerminal
- (Loc.tag (Some (rawwit wit_constr),Extend.Aentry Pcoq.Constr.constr))]
+ (Loc.tag (rawwit wit_constr,Extend.Aentry Pcoq.Constr.constr))]
let _ =
try
@@ -543,7 +543,7 @@ let _ =
extend_vernac_command_grammar ("PrintPureConstr", 0) None
[GramTerminal "PrintPureConstr";
GramNonTerminal
- (Loc.tag (Some (rawwit wit_constr),Extend.Aentry Pcoq.Constr.constr))]
+ (Loc.tag (rawwit wit_constr,Extend.Aentry Pcoq.Constr.constr))]
(* Setting printer of unbound global reference *)
open Names