Module ProcnameDispatcher.TypName

include Common with type ('context, 'f, 'arg_payload) dispatcher = 'context -> IR.Typ.name -> 'f option
type ('context, 'f, 'arg_payload) matcher
type ('context, 'f, 'arg_payload) dispatcher = 'context -> IR.Typ.name -> 'f option
val make_dispatcher : ('context, 'f, 'arg_payload) matcher list -> ('context, 'f, 'arg_payload) dispatcher

Combines matchers to create a dispatcher

val map_matcher : ('context, 'f1, 'arg_payload) matcher -> f:('f1 -> 'f2) -> ('context, 'f2, 'arg_payload) matcher
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 startsWith : string -> 'context -> string -> bool
val endsWith : string -> 'context -> string -> bool
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