B0_ocaml.Modname
Module names
val v : string -> t
v n
is a module name for n
, the result is capitalized.
val of_path_filename : B0_std.Fpath.t -> t
of_path_filename f
is the basename of f
, without extension, capitalized. This assumes the basename of f
follows the OCaml file naming convention mandated by the toolchain. If you know that may not be the case use mangle_filename
.
val pp : t B0_std.Fmt.t
pp
formats a module name.
module Set = B0_std.String.Set
Module name sets.
module Map = B0_std.String.Map
Module name maps.
val mangle_filename : string -> t
mangle_filename s
is module name obtained by mangling the filename s
as follows:
.ml
or .mli
.-
(0x2D) or dot .
(0x2E) to an underscore _
(0x5F).'M'
.The transformation is consistent with of_path_filename
on files that follows the OCaml toolchain convention. However the transformation is not injective. Here are a few examples:
filename Module name ---------------------------------------- publish-website Publish_website publish_website Publish_website import-data.ml Import_data import-data.xml.ml Import_data_xml import-data.script Import_data_script mix+match Mix2Bmatch _release.ml M_release