Suppose we have set the mangling configuration parameters as:
begin act
string mangle_chars ".:()<>[],{}""
string mangle_letter "_"
end
The mangle_chars string defines the following map:
. maps to 0: maps to 1( maps to 2
The first ten characters map to 0 to 9, and the following characters use a through z permitting up to 36 characters to be mangled.
The ACT name x.y would get mangled to:
x_0y
since _ is the prefix used for name mangling. A name like x._y would get translated to:
x_0__y
(The character used as the prefix for name mangling is repeated.)
A process name foo<6,4> would be mangled to
foo_46_84_5
The main reason for name mangling is that some commercial or third-party tools (e.g. SPICE simulators) have restrictions on characters used for signal names, identifiers, etc. Using name mangling is a systematic way to specify restrictions on the output format generated by certain ACT tools.