Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
val dypgen_verbose : int Pervasives.ref
type rule = string * symb list * string * rule_options list
type debug_infos = {
prt_state : Pervasives.out_channel -> unit;
prt_grammar : Pervasives.out_channel -> unit;
}
type (!'t, !'o, !'gd, !'ld, !'l) action =
| Dypgen_action of 'o list ->
(Lexing.position * Lexing.position) ->
(Lexing.position * Lexing.position) list ->
'gd ->
'ld ->
'ld ->
debug_infos ->
('t, 'o, 'gd, 'ld, 'l) parser_pilot ->
(unit -> string list) ->
'o
* bool
* bool
* 'gd
* 'ld
* (rule
* ('t, 'o, 'gd, 'ld, 'l) action
* (int * ('t, 'o, 'gd, 'ld, 'l) inherited_val) list)
list
* (string * string) list
* string list list
* Pervasives.out_channel option
* Pervasives.out_channel option
* ('t, 'o, 'gd, 'ld, 'l) parsing_device option
and (!'t, !'o, !'gd, !'ld, !'l) inherited_val =
'o list ->
(Lexing.position * Lexing.position) ->
(Lexing.position * Lexing.position) list ->
'gd ->
'ld ->
'ld ->
debug_infos ->
('t, 'o, 'gd, 'ld, 'l) parser_pilot ->
(unit -> string list) ->
'o
and (!'token, !'obj, !'global_data, !'local_data, !'lexbuf) parser_pilot = {
pp_dev : ('token, 'obj, 'global_data, 'local_data, 'lexbuf) parsing_device;
pp_par : ('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_parameters;
pp_gd : 'global_data;
pp_ld : 'local_data;
}
type (!'token, !'obj, !'gd, !'ld, !'l) dypgen_toolbox = {
parser_pilot : ('token, 'obj, 'gd, 'ld, 'l) parser_pilot;
global_data : 'gd;
local_data : 'ld;
last_local_data : 'ld;
next_lexeme : unit -> string list;
symbol_start : unit -> int;
symbol_start_pos : unit -> Lexing.position;
symbol_end : unit -> int;
symbol_end_pos : unit -> Lexing.position;
rhs_start : int -> int;
rhs_start_pos : int -> Lexing.position;
rhs_end : int -> int;
rhs_end_pos : int -> Lexing.position;
print_state : Pervasives.out_channel -> unit;
print_grammar : Pervasives.out_channel -> unit;
}
type (!'token, !'obj, !'gd, !'ld, !'l) dyp_action =
| Add_rules of (rule
* (('token, 'obj, 'gd, 'ld, 'l) dypgen_toolbox ->
'obj list ->
'obj * ('token, 'obj, 'gd, 'ld, 'l) dyp_action list))
list
| Bind_to_cons of (string * string) list
| Global_data of 'gd
| Keep_grammar
| Parser of ('token, 'obj, 'gd, 'ld, 'l) parsing_device
| Local_data of 'ld
| Next_grammar of Pervasives.out_channel
| Next_state of Pervasives.out_channel
| Relation of string list list
| Dont_shift
val keep_all : ('obj, 'gd, 'ld) merge_function
val keep_one : ('obj, 'gd, 'ld) merge_function
val dummy_lexbuf_position : 'a -> Lexing.position * Lexing.position
module Tools : sig ... end
val print_regexp : regexp -> string
val lexeme : 'obj dyplexbuf -> string
val lexeme_char : 'obj dyplexbuf -> int -> char
val lexeme_start : 'obj dyplexbuf -> int
val lexeme_end : 'obj dyplexbuf -> int
val lexeme_start_p : 'obj dyplexbuf -> Lexing.position
val lexeme_end_p : 'obj dyplexbuf -> Lexing.position
val flush_input : 'obj dyplexbuf -> unit
val from_string :
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot ->
string ->
'obj dyplexbuf
val from_channel :
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot ->
Pervasives.in_channel ->
'obj dyplexbuf
val from_function :
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot ->
(string -> int -> int) ->
'obj dyplexbuf
val dyplex_lexbuf_position :
'obj dyplexbuf ->
Lexing.position * Lexing.position
val std_lexbuf : 'obj dyplexbuf -> Lexing.lexbuf
val set_newline : 'obj dyplexbuf -> unit
val set_fname : 'obj dyplexbuf -> string -> unit
val make_parser :
(rule
* ('token, 'obj, 'global_data, 'local_data, 'lexbuf) action
* (int * ('token, 'obj, 'global_data, 'local_data, 'lexbuf) inherited_val)
list)
list ->
string list list ->
'global_data ->
'local_data ->
nt_cons_map ->
string list ->
bool ->
int ->
bool ->
('token -> 'obj) ->
('token -> int) ->
('token -> string) ->
('global_data -> 'global_data -> bool) ->
('local_data -> 'local_data -> bool) ->
('obj -> bool) array ->
('obj -> string) ->
string array ->
(string, int) Hashtbl.t ->
('obj, 'global_data, 'local_data) merge_function array ->
('lexbuf -> Lexing.position * Lexing.position) ->
(string * regexp) list ->
((string * regexp) list * (int * ('obj dyplexbuf -> 'obj)) list) ->
(string * (regexp list * ('obj list -> 'obj dyplexbuf -> 'obj) list)) list ->
(string * int) list ->
('obj dyplexbuf -> 'obj) ->
bool ->
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot
val update_pp :
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot ->
('token, 'obj, 'global_data, 'local_data, 'lexbuf) dyp_action list ->
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot
val lex : string -> 'obj list -> 'obj dyplexbuf -> 'obj
val parse :
('token, 'obj, 'global_data, 'local_data, 'lexbuf) parser_pilot ->
string ->
?global_data:'global_data ->
?local_data:'local_data ->
?match_len:[ `longest | `shortest ] ->
?keep_data:[ `both | `global | `local | `none ] ->
?lexpos:('lexbuf -> Lexing.position * Lexing.position) ->
?use_rule_order:bool ->
?use_all_actions:bool ->
('lexbuf -> 'token) ->
'lexbuf ->
('obj * string) list
val lexparse :
('token, 'obj, 'global_data, 'local_data, 'obj dyplexbuf) parser_pilot ->
string ->
?global_data:'global_data ->
?local_data:'local_data ->
?match_len:[ `longest | `shortest ] ->
?keep_data:[ `both | `global | `local | `none ] ->
?choose_token:[ `all | `first ] ->
?use_rule_order:bool ->
?use_all_actions:bool ->
'obj dyplexbuf ->
('obj * string) list
val log_channel : Pervasives.out_channel Pervasives.ref
val function_free_pdev :
('t, 'o, 'gd, 'ld, 'lb) parsing_device ->
('t, 'o, 'gd, 'ld, 'lb) parsing_device
val import_functions :
('t, 'o, 'gd, 'ld, 'l) parsing_device ->
('t, 'o, 'gd, 'ld, 'l) parser_pilot ->
(rule
* (('t, 'o, 'gd, 'ld, 'l) dypgen_toolbox ->
'o list ->
'o * ('t, 'o, 'gd, 'ld, 'l) dyp_action list))
list ->
('t, 'o, 'gd, 'ld, 'l) parsing_device
val is_re_name : ('t, 'o, 'gd, 'ld, 'l) parser_pilot -> string -> bool