Module IR.QualifiedCppName

exception ParseError of string
type t
val compare : t -> t -> int
val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
val empty : t

empty qualified name

val of_qual_string : string -> t

attempts to parse the argument into a list::of::possibly::templated<T>::qualifiers

val to_qual_string : t -> string

returns qualified name as a string with "::" as a separator between qualifiers

val append_qualifier : t -> qual:string -> t

append qualifier to the end (innermost scope) of the qualified name

val extract_last : t -> (string * t) option

returns last (innermost scope) qualifier and qualified name without last qualifier

val strip_template_args : t -> t

returns qualified name without template arguments. For example:

  • input: std::shared_ptr<int>::shared_ptr<long>
  • output: std::shared_ptr::shared_ptr
val append_template_args_to_last : t -> args:string -> t

append template arguments to the last qualifier. Fails if qualified name is empty or it already has template args

val append_protocols : t -> protocols:string -> t

append protocols to the qualified name

val to_list : t -> string list

returns list of qualifiers

val to_rev_list : t -> string list

returns reversed list of qualifiers, ie innermost scope is the first element

val of_list : string list -> t

given list of qualifiers in normal order produce qualified name "std", "move"

val of_rev_list : string list -> t

given reversed list of qualifiers, produce qualified name (ie. "move", "std" for std::move )

val from_field_qualified_name : t -> t
val pp : Stdlib.Format.formatter -> t -> unit
module Match : sig ... end

Module to match qualified C++ procnames "fuzzily", that is up to namescapes and templating. In particular, this deals with the following issues:

module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t