diff options
| author | Hugo Herbelin | 2017-08-23 20:32:15 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2018-02-20 10:03:07 +0100 |
| commit | 69822345c198aa6bf51354f6b84c7fd5d401bc9c (patch) | |
| tree | cdca429d31c34bc606d5deb05ebbdba59695ac2e /parsing | |
| parent | b176959335a8cc097c254ea10b910e8ecbcde54b (diff) | |
Moving Metasyntax.register_grammar to Pcoq for usability in Egramcoq.
Renaming it register_grammars_by_name.
Diffstat (limited to 'parsing')
| -rw-r--r-- | parsing/pcoq.ml | 12 | ||||
| -rw-r--r-- | parsing/pcoq.mli | 7 |
2 files changed, 19 insertions, 0 deletions
diff --git a/parsing/pcoq.ml b/parsing/pcoq.ml index 54e7949aea..ddb26d7717 100644 --- a/parsing/pcoq.ml +++ b/parsing/pcoq.ml @@ -638,3 +638,15 @@ let () = Grammar.register0 wit_constr (Constr.constr); Grammar.register0 wit_red_expr (Vernac_.red_expr); () + +(** Registering extra grammar *) + +type any_entry = AnyEntry : 'a Gram.entry -> any_entry + +let grammar_names : any_entry list String.Map.t ref = ref String.Map.empty + +let register_grammars_by_name name grams = + grammar_names := String.Map.add name grams !grammar_names + +let find_grammars_by_name name = + String.Map.find name !grammar_names diff --git a/parsing/pcoq.mli b/parsing/pcoq.mli index 75378d2c66..accb51366b 100644 --- a/parsing/pcoq.mli +++ b/parsing/pcoq.mli @@ -315,3 +315,10 @@ val (!@) : Ploc.t -> Loc.t type frozen_t val parser_summary_tag : frozen_t Summary.Dyn.tag + +(** Registering grammars by name *) + +type any_entry = AnyEntry : 'a Gram.entry -> any_entry + +val register_grammars_by_name : string -> any_entry list -> unit +val find_grammars_by_name : string -> any_entry list |
