Module: Unmangler

Defined in:
lib/unmangler/msvc.rb,
lib/unmangler.rb,
lib/unmangler/base.rb,
lib/unmangler/borland.rb,
lib/unmangler/version.rb

Overview

ported from Embarcadero RAD Studio XE3 $(BDS)sourcecpprtlSourcemiscunmangle.c

most of the comments are from unmangle.c

Defined Under Namespace

Classes: Base, Borland, MSVC

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.unmangle(name, args = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/unmangler.rb', line 9

def unmangle name, args={}
  if name[0] == "@"
    Unmangler::Borland.safe_unmangle name, args
    # TODO: check if result is same as input
    # and try to unmangle with MS if it is
  elsif name[0] == '?'
    Unmangler::MSVC.safe_unmangle name, args
  elsif name[0,2] == '_Z'
    # GCC ?
    name
  else
    # return original name
    name
  end
end