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 chardemangle2(char char1, char char2) Demangle a three-character mangling starting with '$'.static StringdemangleField(String name) static StringdemangleMethod(String name) static StringdemangleName(String name, boolean reversible) static StringdemangleQualifiedName(String name) static StringdemangleSymbolic(String name) static StringmangleClassName(String name) Mangle a simple class or package name.static StringmangleField(String name) static StringmangleMethod(String name) static StringmangleName(String name) static StringmangleName(String name, boolean reversible) Convert a string to a safe Java identifier.static StringmangleNameIfNeeded(String name) static StringmangleQualifiedName(String name) Mangle a possibly-qualified class name.static StringmangleSymbolic(String name, char context, boolean force) Mangle according to John Rose's "Symbolic Freedom in the VM".static StringmangleVariable(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
-