sig
type g
type token = string * string
val gcreate : Grammar.token Plexing.lexer -> Grammar.g
val tokens : Grammar.g -> string -> (string * int) list
val glexer : Grammar.g -> Grammar.token Plexing.lexer
type parsable
val parsable : Grammar.g -> char Stream.t -> Grammar.parsable
module Entry :
sig
type 'a e
val create : Grammar.g -> string -> 'a Grammar.Entry.e
val parse : 'a Grammar.Entry.e -> char Stream.t -> 'a
val parse_all : 'a Grammar.Entry.e -> char Stream.t -> 'a list
val parse_token : 'a Grammar.Entry.e -> Grammar.token Stream.t -> 'a
val parse_parsable : 'a Grammar.Entry.e -> Grammar.parsable -> 'a
val name : 'a Grammar.Entry.e -> string
val of_parser :
Grammar.g ->
string -> (Grammar.token Stream.t -> 'a) -> 'a Grammar.Entry.e
val print : 'a Grammar.Entry.e -> unit
val find : 'a Grammar.Entry.e -> string -> Obj.t Grammar.Entry.e
external obj : 'a Grammar.Entry.e -> Grammar.token Gramext.g_entry
= "%identity"
end
val of_entry : 'a Grammar.Entry.e -> Grammar.g
module Unsafe :
sig
val gram_reinit : Grammar.g -> Grammar.token Plexing.lexer -> unit
val clear_entry : 'a Grammar.Entry.e -> unit
end
type parse_algorithm =
Gramext.parse_algorithm =
Predictive
| Backtracking
| DefaultAlgorithm
val set_algorithm : Grammar.g -> Grammar.parse_algorithm -> unit
val backtrack_parse : bool Pervasives.ref
val backtrack_stalling_limit : int Pervasives.ref
module type GLexerType =
sig type te val lexer : Grammar.GLexerType.te Plexing.lexer end
module type S =
sig
type te
type parsable
val parsable : char Stream.t -> Grammar.S.parsable
val tokens : string -> (string * int) list
val glexer : Grammar.S.te Plexing.lexer
val set_algorithm : Grammar.parse_algorithm -> unit
module Entry :
sig
type 'a e
val create : string -> 'a Grammar.S.Entry.e
val parse : 'a Grammar.S.Entry.e -> Grammar.S.parsable -> 'a
val parse_token :
'a Grammar.S.Entry.e -> Grammar.S.te Stream.t -> 'a
val name : 'a Grammar.S.Entry.e -> string
val of_parser :
string -> (Grammar.S.te Stream.t -> 'a) -> 'a Grammar.S.Entry.e
val print : 'a Grammar.S.Entry.e -> unit
external obj : 'a Grammar.S.Entry.e -> Grammar.S.te Gramext.g_entry
= "%identity"
end
module Unsafe :
sig
val gram_reinit : Grammar.S.te Plexing.lexer -> unit
val clear_entry : 'a Grammar.S.Entry.e -> unit
end
val extend :
'a Grammar.S.Entry.e ->
Gramext.position option ->
(string option * Gramext.g_assoc option *
(Grammar.S.te Gramext.g_symbol list * Gramext.g_action) list)
list -> unit
val delete_rule :
'a Grammar.S.Entry.e -> Grammar.S.te Gramext.g_symbol list -> unit
end
module GMake :
functor (L : GLexerType) ->
sig
type te = L.te
type parsable
val parsable : char Stream.t -> parsable
val tokens : string -> (string * int) list
val glexer : te Plexing.lexer
val set_algorithm : parse_algorithm -> unit
module Entry :
sig
type 'a e
val create : string -> 'a e
val parse : 'a e -> parsable -> 'a
val parse_token : 'a e -> te Stream.t -> 'a
val name : 'a e -> string
val of_parser : string -> (te Stream.t -> 'a) -> 'a e
val print : 'a e -> unit
external obj : 'a e -> te Gramext.g_entry = "%identity"
end
module Unsafe :
sig
val gram_reinit : te Plexing.lexer -> unit
val clear_entry : 'a Entry.e -> unit
end
val extend :
'a Entry.e ->
Gramext.position option ->
(string option * Gramext.g_assoc option *
(te Gramext.g_symbol list * Gramext.g_action) list)
list -> unit
val delete_rule : 'a Entry.e -> te Gramext.g_symbol list -> unit
end
val skip_item : 'a -> 'a
val error_verbose : bool Pervasives.ref
val warning_verbose : bool Pervasives.ref
val strict_parsing : bool Pervasives.ref
val print_entry : Format.formatter -> 'a Gramext.g_entry -> unit
val iter_entry : ('a Gramext.g_entry -> unit) -> 'a Gramext.g_entry -> unit
val fold_entry :
('a Gramext.g_entry -> 'b -> 'b) -> 'a Gramext.g_entry -> 'b -> 'b
val reinit_entry_functions : 'a Gramext.g_entry -> unit
val loc_of_token_interval : int -> int -> Ploc.t
val extend :
('a Gramext.g_entry * Gramext.position option *
(string option * Gramext.g_assoc option *
('a Gramext.g_symbol list * Gramext.g_action) list)
list)
list -> unit
val delete_rule :
'a Grammar.Entry.e -> Grammar.token Gramext.g_symbol list -> unit
val parse_top_symb :
'a Gramext.g_entry -> 'a Gramext.g_symbol -> 'a Stream.t -> Obj.t
val symb_failed_txt :
'a Gramext.g_entry ->
'a Gramext.g_symbol -> 'a Gramext.g_symbol -> string
val create_local_entry : Grammar.g -> string -> 'a Grammar.Entry.e
end