Package gnu.expr
Class Mangling
- java.lang.Object
-
- gnu.expr.Mangling
-
public class Mangling extends Object
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 Modifier and Type Field Description static boolean
USE_SYMBOLIC
-
Constructor Summary
Constructors Constructor Description Mangling()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static 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 Detail
-
USE_SYMBOLIC
public static final boolean USE_SYMBOLIC
- See Also:
- Constant Field Values
-
-
Method Detail
-
mangleClassName
public static String mangleClassName(String name)
Mangle a simple class or package name. Does not handle qualified names.
-
mangleQualifiedName
public static String mangleQualifiedName(String name)
Mangle a possibly-qualified class name.
-
mangleSymbolic
public static String mangleSymbolic(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.
-
demangle2
public static char demangle2(char char1, char char2)
Demangle a three-character mangling starting with '$'. UNFINISHED!
-
mangleName
public static String mangleName(String name, boolean reversible)
Convert a string to a safe Java identifier.- Parameters:
reversible
- if we should use an invertible mapping.
-
-