diff options
| author | Pierre-Marie Pédrot | 2016-03-19 01:34:55 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2016-03-19 01:35:14 +0100 |
| commit | f63cf9d72c7feb6aa65e525bf6262559a355435f (patch) | |
| tree | 82264308c979e846501e86634f319f7caf10a048 /parsing/entry.ml | |
| parent | 13c50b98b0a294a6056d2e00a0de44cedca7af12 (diff) | |
| parent | 25f39e54e4e8eaf08865121f06635dc3bd1092da (diff) | |
Cleaning up and extending the expressivity of Pcoq.
Diffstat (limited to 'parsing/entry.ml')
| -rw-r--r-- | parsing/entry.ml | 49 |
1 files changed, 10 insertions, 39 deletions
diff --git a/parsing/entry.ml b/parsing/entry.ml index 0519903d3d..b7c6c23fa6 100644 --- a/parsing/entry.ml +++ b/parsing/entry.ml @@ -9,51 +9,22 @@ open Errors open Util -type 'a t = string * string - -type repr = string * string - -type universe = string - -(* The univ_tab is not part of the state. It contains all the grammars that - exist or have existed before in the session. *) - -let univ_tab = (Hashtbl.create 7 : (string, unit) Hashtbl.t) - -let create_univ s = - Hashtbl.add univ_tab s (); s - -let univ_name s = s - -let uprim = create_univ "prim" -let uconstr = create_univ "constr" -let utactic = create_univ "tactic" -let uvernac = create_univ "vernac" - -let get_univ s = - try - Hashtbl.find univ_tab s; s - with Not_found -> - anomaly (Pp.str ("Unknown grammar universe: "^s)) +type 'a t = string (** Entries are registered with a unique name *) let entries = ref String.Set.empty -let create u name = - let uname = u ^ ":" ^ name in +let create name = let () = - if String.Set.mem uname !entries then - anomaly (Pp.str ("Entry " ^ uname ^ " already defined")) + if String.Set.mem name !entries then + anomaly (Pp.str ("Entry " ^ name ^ " already defined")) in - let () = entries := String.Set.add uname !entries in - (u, name) - -let dynamic name = ("", name) + let () = entries := String.Set.add name !entries in + name -let unsafe_of_name (u, s) = - let uname = u ^ ":" ^ s in - assert (String.Set.mem uname !entries); - (u, s) +let unsafe_of_name name = + assert (String.Set.mem name !entries); + name -let repr (u, s) = (u, s) +let repr s = s |
