diff options
| author | Pierre-Marie Pédrot | 2018-11-04 18:32:07 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2018-11-05 19:02:31 +0100 |
| commit | 38020166be0d3533ca8060be1e09192a5ed3c6e7 (patch) | |
| tree | ccf1ef4a3046277d8c05edc8c87826a9b910015e | |
| parent | efe60d3c1b09bc059053b7383e068ddc05248dac (diff) | |
Remove Smeta constructor in Gramlib.
This constructor was only used by meta-level macros that are not used and
serve no purpose in the grammar engine.
| -rw-r--r-- | gramlib/gramext.ml | 7 | ||||
| -rw-r--r-- | gramlib/gramext.mli | 1 | ||||
| -rw-r--r-- | gramlib/grammar.ml | 33 |
3 files changed, 2 insertions, 39 deletions
diff --git a/gramlib/gramext.ml b/gramlib/gramext.ml index 8960d4f257..bd2631f747 100644 --- a/gramlib/gramext.ml +++ b/gramlib/gramext.ml @@ -28,7 +28,6 @@ and 'te g_level = and g_assoc = NonA | RightA | LeftA and 'te g_symbol = Sfacto of 'te g_symbol - | Smeta of string * 'te g_symbol list * Obj.t | Snterm of 'te g_entry | Snterml of 'te g_entry * string | Slist0 of 'te g_symbol @@ -70,7 +69,7 @@ let rec derive_eps = | Sfacto s -> derive_eps s | Stree t -> tree_derive_eps t | Svala (_, s) -> derive_eps s - | Smeta (_, _, _) | Slist1 _ | Slist1sep (_, _, _) | Snterm _ | + | Slist1 _ | Slist1sep (_, _, _) | Snterm _ | Snterml (_, _) | Snext | Sself | Scut | Stoken _ -> false and tree_derive_eps = @@ -204,7 +203,6 @@ and token_exists_in_tree f = and token_exists_in_symbol f = function Sfacto sy -> token_exists_in_symbol f sy - | Smeta (_, syl, _) -> List.exists (token_exists_in_symbol f) syl | Slist0 sy -> token_exists_in_symbol f sy | Slist0sep (sy, sep, _) -> token_exists_in_symbol f sy || token_exists_in_symbol f sep @@ -342,7 +340,6 @@ Error: entries \"%s\" and \"%s\" do not belong to the same grammar.\n" failwith "Grammar.extend error" end | Sfacto s -> check_gram entry s - | Smeta (_, sl, _) -> List.iter (check_gram entry) sl | Slist0sep (s, t, _) -> check_gram entry t; check_gram entry s | Slist1sep (s, t, _) -> check_gram entry t; check_gram entry s | Slist0 s -> check_gram entry s @@ -372,7 +369,6 @@ let insert_tokens gram symbols = let rec insert = function Sfacto s -> insert s - | Smeta (_, sl, _) -> List.iter insert sl | Slist0 s -> insert s | Slist1 s -> insert s | Slist0sep (s, t, _) -> insert s; insert t @@ -508,7 +504,6 @@ let rec decr_keyw_use gram = gram.glexer.Plexing.tok_removing tok end | Sfacto s -> decr_keyw_use gram s - | Smeta (_, sl, _) -> List.iter (decr_keyw_use gram) sl | Slist0 s -> decr_keyw_use gram s | Slist1 s -> decr_keyw_use gram s | Slist0sep (s1, s2, _) -> decr_keyw_use gram s1; decr_keyw_use gram s2 diff --git a/gramlib/gramext.mli b/gramlib/gramext.mli index a76b7da9a2..f012d85bd0 100644 --- a/gramlib/gramext.mli +++ b/gramlib/gramext.mli @@ -26,7 +26,6 @@ and 'te g_level = and g_assoc = NonA | RightA | LeftA and 'te g_symbol = Sfacto of 'te g_symbol - | Smeta of string * 'te g_symbol list * Obj.t | Snterm of 'te g_entry | Snterml of 'te g_entry * string | Slist0 of 'te g_symbol diff --git a/gramlib/grammar.ml b/gramlib/grammar.ml index 04ec1049ed..b38ce59fad 100644 --- a/gramlib/grammar.ml +++ b/gramlib/grammar.ml @@ -42,7 +42,6 @@ let print_str ppf s = fprintf ppf "\"%s\"" (string_escaped s) let rec print_symbol ppf = function Sfacto s -> print_symbol ppf s - | Smeta (n, sl, _) -> print_meta ppf n sl | Slist0 s -> fprintf ppf "LIST0 %a" print_symbol1 s | Slist0sep (s, t, osep) -> fprintf ppf "LIST0 %a SEP %a%s" print_symbol1 s print_symbol1 t @@ -61,20 +60,6 @@ let rec print_symbol ppf = print_str l | Snterm _ | Snext | Sself | Scut | Stoken _ | Stree _ as s -> print_symbol1 ppf s -and print_meta ppf n sl = - let rec loop i = - function - [] -> () - | s :: sl -> - let j = - try String.index_from n i ' ' with Not_found -> String.length n - in - fprintf ppf "%s %a" (String.sub n i (j - i)) print_symbol1 s; - if sl = [] then () - else - begin fprintf ppf " "; loop (min (j + 1) (String.length n)) sl end - in - loop 0 sl and print_symbol1 ppf = function Sfacto s -> print_symbol1 ppf s @@ -85,7 +70,7 @@ and print_symbol1 ppf = | Stoken ("", s) -> print_str ppf s | Stoken (con, "") -> pp_print_string ppf con | Stree t -> print_level ppf pp_print_space (flatten_tree t) - | Smeta (_, _, _) | Snterml (_, _) | Slist0 _ | Slist0sep (_, _, _) | + | Snterml (_, _) | Slist0 _ | Slist0sep (_, _, _) | Slist1 _ | Slist1sep (_, _, _) | Sopt _ | Sflag _ | Stoken _ | Svala (_, _) as s -> fprintf ppf "(%a)" print_symbol s @@ -178,7 +163,6 @@ let rec name_of_symbol_failed entry = | Sflag s -> name_of_symbol_failed entry s | Stree t -> name_of_tree_failed entry t | Svala (_, s) -> name_of_symbol_failed entry s - | Smeta (_, s :: _, _) -> name_of_symbol_failed entry s | s -> name_of_symbol entry s and name_of_tree_failed entry = function @@ -593,12 +577,6 @@ and parser_of_token_list entry s son p1 p2 rev_tokl last_tok = and parser_of_symbol entry nlevn = function Sfacto s -> parser_of_symbol entry nlevn s - | Smeta (_, symbl, act) -> - let act = Obj.magic act entry symbl in - Obj.magic - (List.fold_left - (fun act symb -> Obj.magic act (parser_of_symbol entry nlevn symb)) - act symbl) | Slist0 s -> let ps = call_and_push (parser_of_symbol entry nlevn s) in let rec loop al (strm__ : _ Stream.t) = @@ -970,7 +948,6 @@ let find_entry e s = Sfacto s -> find_symbol s | Snterm e -> if e.ename = s then Some e else None | Snterml (e, _) -> if e.ename = s then Some e else None - | Smeta (_, sl, _) -> find_symbol_list sl | Slist0 s -> find_symbol s | Slist0sep (s, _, _) -> find_symbol s | Slist1 s -> find_symbol s @@ -980,14 +957,6 @@ let find_entry e s = | Stree t -> find_tree t | Svala (_, s) -> find_symbol s | Sself | Snext | Scut | Stoken _ -> None - and find_symbol_list = - function - s :: sl -> - begin match find_symbol s with - None -> find_symbol_list sl - | x -> x - end - | [] -> None and find_tree = function Node {node = s; brother = bro; son = son} -> |
