Module IR.QualifiedCppName
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 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 )
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: