C# Class Reko.Environments.Windows.MsMangledNameParser

Unmangles methods and data objects whose names have been mangled using Microsoft's mangling algorithm.
Microsoft doesn't document the mangling format, but reverse engineering has been done, resulting in: http://www.kegel.com/mangle.html http://www.agner.org/optimize/calling_conventions.pdf
Show file Open project: uxmal/reko Class Usage Examples

Public Properties

Property Type Description
ClassName string
Modifier string
Scope string

Public Methods

Method Description
MsMangledNameParser ( string str ) : Reko.Core
Parse ( ) : Tuple
ParseArgumentList ( ) : Reko.Core.Serialization.Argument_v1[]
ParseBasicName ( ) : string
ParseCallingConvention ( ) : string
ParseDataTypeCode ( List compoundArgs ) : SerializedType
ParseEnum ( List compoundArgs ) : SerializedType
ParseFunctionTypeCode ( ) : SerializedSignature
ParseGlobalFunction ( string modifier ) : SerializedSignature
ParseInstanceMethod ( string modifier ) : SerializedSignature
ParseMemberFunctionPointerCode ( int byteSize, List compoundArgs ) : MemberPointer_v1
ParseOperatorCode ( ) : string
ParsePointer ( List compoundArgs ) : SerializedType
ParseQualification ( ) : string[]

Reads a qualification followed by '@'.

ParseQualifiedTypeCode ( string basicName, string qualification, List compoundArgs ) : Tuple
ParseReturnStorageClass ( ) : string
ParseStaticMethod ( string modifier ) : SerializedSignature
ParseStorageClass ( ) : string
ParseStructure ( List compoundArgs ) : TypeReference_v1
ParseTemplateArguments ( ) : List
ParseThisStorageClass ( ) : string
ParseUnqualifiedTypeCode ( string basicName ) : Tuple

Private Methods

Method Description
CreateEnclosingType ( string scope ) : StructType_v1
Error ( string format ) : void
Expect ( char ch ) : void
ParseAtName ( ) : string
ParseNonTypeTemplateArgument ( ) : void
PeekAndDiscard ( char ch ) : bool

Method Details

MsMangledNameParser() public method

public MsMangledNameParser ( string str ) : Reko.Core
str string
return Reko.Core

Parse() public method

public Parse ( ) : Tuple
return Tuple

ParseArgumentList() public method

public ParseArgumentList ( ) : Reko.Core.Serialization.Argument_v1[]
return Reko.Core.Serialization.Argument_v1[]

ParseBasicName() public method

public ParseBasicName ( ) : string
return string

ParseCallingConvention() public method

public ParseCallingConvention ( ) : string
return string

ParseDataTypeCode() public method

public ParseDataTypeCode ( List compoundArgs ) : SerializedType
compoundArgs List
return SerializedType

ParseEnum() public method

public ParseEnum ( List compoundArgs ) : SerializedType
compoundArgs List
return SerializedType

ParseFunctionTypeCode() public method

public ParseFunctionTypeCode ( ) : SerializedSignature
return SerializedSignature

ParseGlobalFunction() public method

public ParseGlobalFunction ( string modifier ) : SerializedSignature
modifier string
return SerializedSignature

ParseInstanceMethod() public method

public ParseInstanceMethod ( string modifier ) : SerializedSignature
modifier string
return SerializedSignature

ParseMemberFunctionPointerCode() public method

public ParseMemberFunctionPointerCode ( int byteSize, List compoundArgs ) : MemberPointer_v1
byteSize int
compoundArgs List
return MemberPointer_v1

ParseOperatorCode() public method

public ParseOperatorCode ( ) : string
return string

ParsePointer() public method

public ParsePointer ( List compoundArgs ) : SerializedType
compoundArgs List
return SerializedType

ParseQualification() public method

Reads a qualification followed by '@'.
public ParseQualification ( ) : string[]
return string[]

ParseQualifiedTypeCode() public method

public ParseQualifiedTypeCode ( string basicName, string qualification, List compoundArgs ) : Tuple
basicName string
qualification string
compoundArgs List
return Tuple

ParseReturnStorageClass() public method

public ParseReturnStorageClass ( ) : string
return string

ParseStaticMethod() public method

public ParseStaticMethod ( string modifier ) : SerializedSignature
modifier string
return SerializedSignature

ParseStorageClass() public method

public ParseStorageClass ( ) : string
return string

ParseStructure() public method

public ParseStructure ( List compoundArgs ) : TypeReference_v1
compoundArgs List
return TypeReference_v1

ParseTemplateArguments() public method

public ParseTemplateArguments ( ) : List
return List

ParseThisStorageClass() public method

public ParseThisStorageClass ( ) : string
return string

ParseUnqualifiedTypeCode() public method

public ParseUnqualifiedTypeCode ( string basicName ) : Tuple
basicName string
return Tuple

Property Details

ClassName public property

public string ClassName
return string

Modifier public property

public string Modifier
return string

Scope public property

public string Scope
return string