Package gnu.expr
Class Mangling
java.lang.Object
gnu.expr.Mangling
Helper methods for mangling and demangling.
"Mangling" is converting a user-level identifier to an internal
system-level name, which may be restricted in allowed characters.
"Demangling" is the inverse operation.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic char
demangle2
(char char1, char char2) Demangle a three-character mangling starting with '$'.static String
demangleField
(String name) static String
demangleMethod
(String name) static String
demangleName
(String name, boolean reversible) static String
demangleQualifiedName
(String name) static String
demangleSymbolic
(String name) static String
mangleClassName
(String name) Mangle a simple class or package name.static String
mangleField
(String name) static String
mangleMethod
(String name) static String
mangleName
(String name) static String
mangleName
(String name, boolean reversible) Convert a string to a safe Java identifier.static String
mangleNameIfNeeded
(String name) static String
mangleQualifiedName
(String name) Mangle a possibly-qualified class name.static String
mangleSymbolic
(String name, char context, boolean force) Mangle according to John Rose's "Symbolic Freedom in the VM".static String
mangleVariable
(String name)
-
Field Details
-
USE_SYMBOLIC
public static final boolean USE_SYMBOLIC- See Also:
-
-
Constructor Details
-
Mangling
public Mangling()
-
-
Method Details
-
mangleClassName
Mangle a simple class or package name. Does not handle qualified names. -
mangleQualifiedName
Mangle a possibly-qualified class name. -
mangleVariable
-
mangleField
-
demangleField
-
mangleMethod
-
demangleMethod
-
demangleQualifiedName
-
mangleSymbolic
Mangle according to John Rose's "Symbolic Freedom in the VM". See this article.- Parameters:
context
- One of 'C' (class name); 'Q' (qualified name, with dots); 'F' (field name); 'M' (method name); 'V' (local variable name).force
- True if should escape '\\' even if that is the only disallowed character. The may cause an already-mangled name to be doubly mangled.
-
demangleName
-
demangle2
public static char demangle2(char char1, char char2) Demangle a three-character mangling starting with '$'. UNFINISHED! -
demangleSymbolic
-
mangleName
-
mangleName
Convert a string to a safe Java identifier.- Parameters:
reversible
- if we should use an invertible mapping.
-
mangleNameIfNeeded
-