diff options
| author | Hugo Herbelin | 2017-08-09 13:58:59 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2018-02-20 10:03:04 +0100 |
| commit | 51976c9f2157953f794ed1efcd68403a8545d346 (patch) | |
| tree | 612cc59179d2d16d5bb552f31f0abda92e50dd23 /interp | |
| parent | 6901f720c6115c8eec1343846641a5c8453c3268 (diff) | |
A bit of miscellaneous code documentation around notations.
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/notation.mli | 8 | ||||
| -rw-r--r-- | interp/notation_ops.ml | 1 |
2 files changed, 5 insertions, 4 deletions
diff --git a/interp/notation.mli b/interp/notation.mli index 7d055571c8..d100122129 100644 --- a/interp/notation.mli +++ b/interp/notation.mli @@ -176,10 +176,10 @@ val scope_class_of_class : Classops.cl_typ -> scope_class (** Building notation key *) type symbol = - | Terminal of string - | NonTerminal of Id.t - | SProdList of Id.t * symbol list - | Break of int + | Terminal of string (* an expression including symbols or a simply-quoted ident, e.g. "'U'" or "!" *) + | NonTerminal of Id.t (* an identifier "x" *) + | SProdList of Id.t * symbol list (* an expression "x sep .. sep y", remembering x (or y) and sep *) + | Break of int (* a sequence of blanks > 1, e.g. " " *) val symbol_eq : symbol -> symbol -> bool diff --git a/interp/notation_ops.ml b/interp/notation_ops.ml index 301ec69847..c414ba67a9 100644 --- a/interp/notation_ops.ml +++ b/interp/notation_ops.ml @@ -338,6 +338,7 @@ let compare_recursive_parts found f f' (iterator,subc) = let notation_constr_and_vars_of_glob_constr a = let found = ref { vars = []; recursive_term_vars = []; recursive_binders_vars = [] } in let has_ltac = ref false in + (* Turn a glob_constr into a notation_constr by first trying to find a recursive pattern *) let rec aux c = let keepfound = !found in (* n^2 complexity but small and done only once per notation *) |
