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 Details

  • Constructor Details

    • Mangling

      public Mangling()
  • Method Details

    • 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)