Package gnu.expr
Class Mangling
- java.lang.Object
-
- gnu.expr.Mangling
-
public class Mangling extends java.lang.ObjectHelper 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 Modifier and Type Field Description static booleanUSE_SYMBOLIC
-
Constructor Summary
Constructors Constructor Description Mangling()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static chardemangle2(char char1, char char2)Demangle a three-character mangling starting with '$'.static java.lang.StringdemangleField(java.lang.String name)static java.lang.StringdemangleMethod(java.lang.String name)static java.lang.StringdemangleName(java.lang.String name, boolean reversible)static java.lang.StringdemangleQualifiedName(java.lang.String name)static java.lang.StringdemangleSymbolic(java.lang.String name)static java.lang.StringmangleClassName(java.lang.String name)Mangle a simple class or package name.static java.lang.StringmangleField(java.lang.String name)static java.lang.StringmangleMethod(java.lang.String name)static java.lang.StringmangleName(java.lang.String name)static java.lang.StringmangleName(java.lang.String name, boolean reversible)Convert a string to a safe Java identifier.static java.lang.StringmangleNameIfNeeded(java.lang.String name)static java.lang.StringmangleQualifiedName(java.lang.String name)Mangle a possibly-qualified class name.static java.lang.StringmangleSymbolic(java.lang.String name, char context, boolean force)Mangle according to John Rose's "Symbolic Freedom in the VM".static java.lang.StringmangleVariable(java.lang.String name)
-
-
-
Field Detail
-
USE_SYMBOLIC
public static final boolean USE_SYMBOLIC
- See Also:
- Constant Field Values
-
-
Method Detail
-
mangleClassName
public static java.lang.String mangleClassName(java.lang.String name)
Mangle a simple class or package name. Does not handle qualified names.
-
mangleQualifiedName
public static java.lang.String mangleQualifiedName(java.lang.String name)
Mangle a possibly-qualified class name.
-
mangleVariable
public static java.lang.String mangleVariable(java.lang.String name)
-
mangleField
public static java.lang.String mangleField(java.lang.String name)
-
demangleField
public static java.lang.String demangleField(java.lang.String name)
-
mangleMethod
public static java.lang.String mangleMethod(java.lang.String name)
-
demangleMethod
public static java.lang.String demangleMethod(java.lang.String name)
-
demangleQualifiedName
public static java.lang.String demangleQualifiedName(java.lang.String name)
-
mangleSymbolic
public static java.lang.String mangleSymbolic(java.lang.String name, char context, boolean force)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
public static java.lang.String demangleName(java.lang.String name, boolean reversible)
-
demangle2
public static char demangle2(char char1, char char2)Demangle a three-character mangling starting with '$'. UNFINISHED!
-
demangleSymbolic
public static java.lang.String demangleSymbolic(java.lang.String name)
-
mangleName
public static java.lang.String mangleName(java.lang.String name)
-
mangleName
public static java.lang.String mangleName(java.lang.String name, boolean reversible)Convert a string to a safe Java identifier.- Parameters:
reversible- if we should use an invertible mapping.
-
mangleNameIfNeeded
public static java.lang.String mangleNameIfNeeded(java.lang.String name)
-
-