blob: f1e294fb4c3a6c7bc710f527b569bdf2a4fca49f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
(* camlp5r *)
(* gramext.mli,v *)
(* Copyright (c) INRIA 2007-2017 *)
type 'a parser_t = 'a Stream.t -> Obj.t
type 'te grammar =
{ gtokens : (Plexing.pattern, int ref) Hashtbl.t;
glexer : 'te Plexing.lexer }
type 'te g_entry =
{ egram : 'te grammar;
ename : string;
elocal : bool;
mutable estart : int -> 'te parser_t;
mutable econtinue : int -> int -> Obj.t -> 'te parser_t;
mutable edesc : 'te g_desc }
and 'te g_desc =
Dlevels of 'te g_level list
| Dparser of 'te parser_t
and 'te g_level =
{ assoc : g_assoc;
lname : string option;
lsuffix : 'te g_tree;
lprefix : 'te g_tree }
and g_assoc = NonA | RightA | LeftA
and 'te g_symbol =
| Snterm of 'te g_entry
| Snterml of 'te g_entry * string
| Slist0 of 'te g_symbol
| Slist0sep of 'te g_symbol * 'te g_symbol * bool
| Slist1 of 'te g_symbol
| Slist1sep of 'te g_symbol * 'te g_symbol * bool
| Sopt of 'te g_symbol
| Sself
| Snext
| Stoken of Plexing.pattern
| Stree of 'te g_tree
and g_action = Obj.t
and 'te g_tree =
Node of 'te g_node
| LocAct of g_action * g_action list
| DeadEnd
and 'te g_node =
{ node : 'te g_symbol; son : 'te g_tree; brother : 'te g_tree }
and err_fun = unit -> string
type position =
First
| Last
| Before of string
| After of string
| Level of string
val levels_of_rules : warning:(string -> unit) option ->
'te g_entry -> position option ->
(string option * g_assoc option * ('te g_symbol list * g_action) list)
list ->
'te g_level list
val srules : warning:(string -> unit) option -> ('te g_symbol list * g_action) list -> 'te g_symbol
val eq_symbol : 'a g_symbol -> 'a g_symbol -> bool
val delete_rule_in_level_list :
'te g_entry -> 'te g_symbol list -> 'te g_level list -> 'te g_level list
|