青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

歲月流轉,往昔空明

C++博客 首頁 新隨筆 聯系 聚合 管理
  118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks

Syntax of SASL Symbol Name Mangling

September 26

2010

This script describes the rules of symbol name mangling.

V1.0

SASL Name Mangling Syntax

V1.0

Name mangling can be applied to name of function mainly, for distinguishing the overloaded function

MangledName is the result of Name Mangling. It starts with ‘M’ character and ends with ‘Z’ character.

MangledName ::= ‘M’ QualifiedName ‘@@’ ParameterTypes CallingConvention

QualifiedName is base name qualified by scope name. A scope name could be a structure name, class name or namespace name.

ParameterTypes describes the types of parameter list.

‘@@’ is the splitter between qualified name and parameter type.

QualifiedName ::= ( ScopeName ‘@’ )* BaseName

QualifiedName is composited by scope name and base name. ‘@’ is used to split the scope segments.

ScopeName ::=

‘S’ StructTypeName

‘N’ NamespaceName

StructTypeName ::= <name of structure>

NamespaceName ::= <name of namespace>

BaseName ::= <literal name of function>

ScopeName are two sorts, structure name or namespace name. Sorts are distinguished by a lead character. If the name starts with ‘S’ it means the name of structure, and ‘N’ means following name represents a namespace. Note that, if

BaseName is the literal name of the function or a type.

ParameterTypes is a list of parameter types. Because SASL do not support variance parameters, so we need not to considerate that. Syntax of ParameterTypes as following:

ParameterTypes ::= ( ParameterType ‘@@’)*

ParameterType is encoded by type qualifiers and type name.

NOTE THAT, anywhere type name referred means that the original definition name but not alias( such as generated by “typedef” ).

ParameterType ::= ScopeQualifiedTypeName

ScopeQualifiedTypeName is the type name qualified by scopes. It is similar with qualified name.

ScopeQualifiedTypeName ::= ( ScopeName ‘@’ )* BaseTypeName

ScopeName ::= ( ‘S’ StructTypeName ) | ( ‘N’ NamespaceName )

QualifiedBaseTypeName ::= TypeQualifier BaseTypeName

TypeQualifier ::= (‘C’)?(‘S’)?(‘U’)?Q

TypeQualifier describes the qualifier of declaration. In SASL, following qualifiers are supported: constant qualifier (‘C’), uniform qualifier (‘U’) and shared qualifier (‘S’). Each qualifier is represented as a character, and qualifiers is ended by a character ‘Q’.

BaseTypeName ::=

‘S’ StructTypeName

‘B’ BuildinScalarTypeName

‘V’ BuildinVectorTypeName

‘F’ FunctionTypeName

‘M’ BuildinMatrixTypeName

‘A’ ArraySize ArrayComponentTypeName

StructTypeName ::= <literal name of structure>

BuildinScalarTypeNames encode all build-in type into one or two characters.

BuildinScalarTypeName ::=

‘U1’ | ‘U2’ | ‘U4’ | ‘U8’ |‘I1’ | ‘I2’ | ‘I4’ | ‘I8’ | ‘B’ | ’F’ | ‘D’ | ‘O’

ArrayComponentTypeName ::= QualifiedBaseTypeName

ArraySize ::=

<length of array >

‘V’

They are corresponded following building types: uint8_t, uint16_t, uint32_t, uint64_t, int8_t, int16_t, int32_t, int64_t, boolean, float, double and omit (void).

BuildinVectorName ::= VectorLength BuildinScalarTypeName

BuildinMatrixName ::= RowCountOfMatrix ColumnCountOfMatrix BuildinScalarTypeName

BuildinVectorTypeName shows the name of building vector. It makes of length component and scalar type component.

VectorLength Could be 1, 2, 3 or 4 and represents the length of vector.

And the BuildinMatrixTypeName is similar as build-in vector type name.

ArraySize is an integer demonstrating the size of fixed-length array or ‘V’ (void or variant) means that it is a variant length array.

ArrayComponentTypeName is the description of type of component of array. For example, array component type of “int32_t[]” is “int32_t”. So array component type name is set to the mangled name of int32_t, “I4”.

CallingConvention is a single character which shows the calling convention of this function. ‘S’ means “__stdcall”, ‘C’ means “__cdecl” and ‘F’ ,means “__fastcall”

CallingConvention ::=

‘S’

‘C’

‘F’

FunctionTypeName reuses all non-terminators and terminators mentioned above.

FunctionTypeName ::= ReturnType PrarameterTypes CallConvetion ‘@@@’

ReturnType ::= ParameterType ‘@@’

posted on 2010-09-26 19:12 空明流轉 閱讀(1697) 評論(2)  編輯 收藏 引用

評論

# re: SASL Name Mangling (Release Candidate Version) 2010-09-27 09:02 ccsdu2009
如果是你弄得 為什么要弄英文 ?  回復  更多評論
  

# re: SASL Name Mangling (Release Candidate Version) 2010-09-27 13:28 空明流轉
@ccsdu2009
這是SoftArt文檔的一部分,自然選擇用英文。  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99精品久久久| 亚洲电影免费| 亚洲欧美国产精品桃花| 亚洲一区二区不卡免费| 国产亚洲精品福利| 免费视频亚洲| 欧美日韩国产成人高清视频| 亚洲图片在线观看| 午夜精品亚洲| 亚洲人妖在线| 亚洲午夜女主播在线直播| 国产一级揄自揄精品视频| 免费看亚洲片| 国产精品国产a级| 久久免费精品日本久久中文字幕| 美女精品在线| 欧美一区精品| 欧美电影美腿模特1979在线看| 99riav1国产精品视频| 亚洲校园激情| 亚洲伦理自拍| 欧美一区午夜视频在线观看| 亚洲黄色大片| 欧美一区二区视频免费观看| 亚洲欧洲日夜超级视频| 亚洲综合视频1区| 亚洲日本中文字幕| 欧美一区二区三区免费观看| 亚洲免费成人av| 久久精品国产综合精品| 亚洲一区二区在线| 老司机久久99久久精品播放免费| 亚洲一区在线播放| 欧美第一黄色网| 久久综合999| 国产精品久久一卡二卡| 亚洲第一视频| 国产视频自拍一区| 一区二区三区免费观看| 亚洲精品欧美| 久久综合给合久久狠狠色 | 国外成人网址| 亚洲高清自拍| 国产欧美日本一区视频| 亚洲伦理自拍| 日韩视频久久| 牛牛国产精品| 欧美α欧美αv大片| 国产日韩欧美亚洲| 亚洲香蕉在线观看| 亚洲愉拍自拍另类高清精品| 欧美精品日韩综合在线| 欧美成人激情视频| 精品成人乱色一区二区| 欧美一区二区在线播放| 久久激情综合| 国产一区二三区| 欧美在线免费视频| 久久久天天操| 伊人成年综合电影网| 久久丁香综合五月国产三级网站| 久久av资源网| 国内精品国产成人| 久久av在线| 免费影视亚洲| 亚洲缚视频在线观看| 久久综合伊人77777麻豆| 欧美大片免费观看| 日韩午夜免费视频| 欧美午夜视频网站| 亚洲影院污污.| 久久精品国产亚洲精品| 黄色亚洲免费| 免费欧美在线视频| 亚洲精选中文字幕| 午夜日韩福利| 激情视频一区二区三区| 免费欧美电影| 一区二区三区三区在线| 欧美一区久久| 在线精品视频一区二区| 欧美激情亚洲自拍| 亚洲曰本av电影| 你懂的一区二区| 在线一区免费观看| 国产日韩高清一区二区三区在线| 久久久噜噜噜| 99视频有精品| 久久综合九色综合久99| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲淫片在线视频| 国产亚洲精品aa午夜观看| 麻豆精品一区二区综合av| 亚洲精品一二| 久久亚洲高清| 亚洲天堂成人在线视频| 国产一区二区无遮挡| 欧美精品日韩综合在线| 欧美一级播放| 一本大道久久a久久综合婷婷 | 亚洲日本一区二区三区| 国产精品理论片| 老**午夜毛片一区二区三区| 一区二区三区四区国产| 另类图片国产| 亚洲欧美视频在线观看| 最新日韩在线视频| 国产日韩欧美二区| 欧美视频在线免费看| 狂野欧美激情性xxxx| 亚洲激情欧美激情| 久久九九免费| 在线视频日韩| 亚洲电影在线免费观看| 久久激情一区| 午夜精品福利视频| 一区二区三区免费在线观看| 伊伊综合在线| 国产在线不卡| 国产精品亚洲第一区在线暖暖韩国| 欧美高清成人| 美女国产一区| 久久精品五月婷婷| 欧美一区二区三区的| 亚洲视频欧美在线| 99热在这里有精品免费| 亚洲国产欧美日韩| 免费影视亚洲| 美女性感视频久久久| 久久久久久久网| 久久久噜噜噜久久| 久久精品久久综合| 欧美影院成年免费版| 亚洲欧美福利一区二区| 亚洲欧美一区二区激情| 亚洲一区综合| 亚洲免费小视频| 亚洲欧美日韩国产综合在线| 亚洲一本视频| 亚洲一二三区在线| 亚洲欧美一区二区激情| 午夜精品福利在线| 久久av免费一区| 久久久久久午夜| 欧美成人免费在线视频| 亚洲第一精品福利| 亚洲精品一区二区三区婷婷月| 亚洲国产精品123| 亚洲精品一区二区三区樱花| 99精品欧美一区| 亚洲午夜在线观看| 午夜综合激情| 久久资源在线| 欧美精品久久一区| 国产精品国产三级国产专播品爱网 | 韩日欧美一区| 亚洲日本成人| 亚洲一区二区三区四区五区午夜| 亚洲一区免费网站| 久久久蜜臀国产一区二区| 女女同性女同一区二区三区91| 欧美激情一区二区三区| 夜夜嗨av一区二区三区免费区| 亚洲午夜免费视频| 久久精品主播| 欧美人与性禽动交情品 | 久久久久久久综合日本| 免费影视亚洲| 国产精品久久二区| 亚洲第一页自拍| 亚洲亚洲精品三区日韩精品在线视频 | 在线日韩视频| 亚洲一区综合| 免费欧美在线视频| 一区二区三区久久| 老司机午夜精品| 国产精品美女www爽爽爽视频| 狠狠入ady亚洲精品| 亚洲视频在线观看免费| 久久婷婷国产综合精品青草| 日韩午夜免费| 久久久精彩视频| 亚洲乱码日产精品bd| 欧美成人免费大片| 欧美久久久久久蜜桃| 国产亚洲精品资源在线26u| 亚洲精品你懂的| 久久全球大尺度高清视频| 亚洲靠逼com| 久久亚洲欧美国产精品乐播| 欧美性开放视频| 亚洲精品一区久久久久久| 久久九九免费视频| 亚洲午夜视频| 欧美日韩亚洲一区三区| 亚洲黄色三级| 久久中文欧美| 久久精品免费播放| 国产欧美亚洲视频| 亚洲自拍高清|