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
Exibir arquivo 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_oe property

public string ClassName
return string

Modifier public_oe property

public string Modifier
return string

Scope public_oe property

public string Scope
return string