Package gnu.expr

Class 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.
    • Constructor Detail

      • Mangling

        public Mangling()
    • 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.
      • mangleVariable

        public static String mangleVariable​(String name)
      • mangleField

        public static String mangleField​(String name)
      • demangleField

        public static String demangleField​(String name)
      • mangleMethod

        public static String mangleMethod​(String name)
      • demangleMethod

        public static String demangleMethod​(String name)
      • demangleQualifiedName

        public static String demangleQualifiedName​(String 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.
      • demangleName

        public static String demangleName​(String name,
                                          boolean reversible)
      • demangle2

        public static char demangle2​(char char1,
                                     char char2)
        Demangle a three-character mangling starting with '$'. UNFINISHED!
      • demangleSymbolic

        public static String demangleSymbolic​(String name)
      • mangleName

        public static String mangleName​(String name)
      • 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.
      • mangleNameIfNeeded

        public static String mangleNameIfNeeded​(String name)