ProcnameDispatcher.ProcName
include Common
with type ('context, 'f, 'arg_payload) dispatcher =
'context ->
IR.Procname.t ->
'f option
type ('context, 'f, 'arg_payload) dispatcher =
'context ->
IR.Procname.t ->
'f option
val make_dispatcher :
('context, 'f, 'arg_payload) matcher list ->
('context, 'f, 'arg_payload) dispatcher
Combines matchers to create a dispatcher
val any_typ : ('f, 'f, accept_more) template_arg
Eats a type
val capt_typ : (IR.Typ.t -> 'f, 'f, accept_more) template_arg
Captures a type
val capt_int : (IStdlib.IStd.Int64.t -> 'f, 'f, accept_more) template_arg
Captures an int
val capt_all : (IR.Typ.template_arg list -> 'f, 'f, end_of_list) template_arg
Captures all template args
val (~-) : string -> ('context, 'f, 'f, 'arg_payload) name_matcher
Starts a path with a name
val (~+) :
('context -> string -> bool) ->
('context, 'f, 'f, 'arg_payload) name_matcher
Starts a path with a matching name that satisfies the given function
val (&+) :
('context, 'f_in, 'f_interm, accept_more, 'arg_payload) templ_matcher ->
('f_interm, 'f_out, 'lc) template_arg ->
('context, 'f_in, 'f_out, 'lc, 'arg_payload) templ_matcher
Separate template arguments
val (<) :
('context, 'f_in, 'f_interm, 'arg_payload) name_matcher ->
('f_interm, 'f_out, 'lc) template_arg ->
('context, 'f_in, 'f_out, 'lc, 'arg_payload) templ_matcher
Starts template arguments after a name
val (>::) :
('context, 'f_in, 'f_out, _, 'arg_payload) templ_matcher ->
string ->
('context, 'f_in, 'f_out, 'arg_payload) name_matcher
Ends template arguments and starts a name
val (>::+) :
('context, 'f_in, 'f_out, 'lc, 'arg_payload) templ_matcher ->
('context -> string -> bool) ->
('context, 'f_in, 'f_out, 'arg_payload) name_matcher
val (&+...>::) :
('context, 'f_in, 'f_out, accept_more, 'arg_payload) templ_matcher ->
string ->
('context, 'f_in, 'f_out, 'arg_payload) name_matcher
Ends template arguments with eats-ALL and starts a name
val (&::) :
('context, 'f_in, 'f_out, 'arg_payload) name_matcher ->
string ->
('context, 'f_in, 'f_out, 'arg_payload) name_matcher
Separates names (accepts ALL template arguments on the left one)
val (&::+) :
('context, 'f_in, 'f_out, 'arg_payload) name_matcher ->
('context -> string -> bool) ->
('context, 'f_in, 'f_out, 'arg_payload) name_matcher
Separates names that satisfies the given function (accepts ALL template arguments on the left one)
val (<>::) :
('context, 'f_in, 'f_out, 'arg_payload) name_matcher ->
string ->
('context, 'f_in, 'f_out, 'arg_payload) name_matcher
Separates names (accepts NO template arguments on the left one)
val (>-->) :
('context, 'f_in, 'f_out, _, 'arg_payload) templ_matcher ->
'f_in ->
('context, 'f_out, 'arg_payload) matcher
Ends template arguments with accept-NO further template arguments
val (&+...>-->) :
('context, 'f_in, 'f_out, accept_more, 'arg_payload) templ_matcher ->
'f_in ->
('context, 'f_out, 'arg_payload) matcher
Ends template arguments with accept-ALL further template arguments
val (<>-->) :
('context, 'f_in, 'f_out, 'arg_payload) name_matcher ->
'f_in ->
('context, 'f_out, 'arg_payload) matcher
val (&-->) :
('context, 'f_in, 'f_out, 'arg_payload) name_matcher ->
'f_in ->
('context, 'f_out, 'arg_payload) matcher
val (&::.*-->) :
('context, 'f_in, 'f_out, 'arg_payload) name_matcher ->
'f_in ->
('context, 'f_out, 'arg_payload) matcher
After a name, accepts ALL template arguments, accepts ALL path tails (names, templates), accepts ALL function arguments, binds the function