aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2018-11-04 18:32:07 +0100
committerPierre-Marie Pédrot2018-11-05 19:02:31 +0100
commit38020166be0d3533ca8060be1e09192a5ed3c6e7 (patch)
treeccf1ef4a3046277d8c05edc8c87826a9b910015e
parentefe60d3c1b09bc059053b7383e068ddc05248dac (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.ml7
-rw-r--r--gramlib/gramext.mli1
-rw-r--r--gramlib/grammar.ml33
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} ->