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

歲月流轉,往昔空明

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 空明流轉 閱讀(1699) 評論(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文檔的一部分,自然選擇用英文。  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品国产品国语在线app | 国内精品久久久久久| 曰韩精品一区二区| 欧美一级大片在线免费观看| 亚洲黄色尤物视频| 久久久国产91| 国产日韩欧美中文| 欧美一区永久视频免费观看| 一区二区高清视频| 欧美国产一区二区三区激情无套| 在线观看视频一区| 欧美91精品| 麻豆久久久9性大片| 136国产福利精品导航网址| 久久久久久久一区二区三区| 欧美一区二区黄色| 1000部精品久久久久久久久| 男人的天堂亚洲| 欧美成人在线影院| 一本色道久久综合狠狠躁篇的优点| 亚洲欧洲在线一区| 欧美午夜电影网| 久久精品亚洲一区| 久久久久国色av免费观看性色| 激情成人av| 亚洲电影激情视频网站| 久久久久综合一区二区三区| 欧美一区午夜精品| 亚洲激情一区二区| 一区二区三区黄色| 黄网站免费久久| 亚洲国产精品va| 欧美色视频日本高清在线观看| 亚洲一区在线免费观看| 午夜精品久久久久久久久久久久久 | 亚洲高清二区| 亚洲日本成人网| 国产精品一区毛片| 欧美~级网站不卡| 欧美日韩久久久久久| 欧美一级专区免费大片| 久久久久九九视频| 在线一区欧美| 欧美视频在线看| 国产精品高清网站| 久久看片网站| 男女视频一区二区| 欧美一区2区三区4区公司二百| 久久精品国产久精国产爱| 亚洲国产小视频在线观看| 亚洲视频 欧洲视频| 黄色成人免费网站| 99精品久久免费看蜜臀剧情介绍| 国产日韩精品在线| 亚洲三级毛片| 黑人巨大精品欧美黑白配亚洲| 亚洲精品免费观看| 国产一区二区三区在线观看精品| 亚洲国产精品视频| 国外成人性视频| 一区二区三区久久网| 亚洲黄色在线视频| 久久福利资源站| 亚洲综合成人婷婷小说| 浪潮色综合久久天堂| 欧美一级视频| 欧美日韩在线免费视频| 久热国产精品| 国产亚洲一区二区三区在线观看 | 欧美一级淫片播放口| 日韩一级黄色av| 久久久青草婷婷精品综合日韩| 亚洲免费在线播放| 欧美日韩国产美| 亚洲激情网站免费观看| 亚洲大片av| 久久成人精品电影| 久久久久国产精品一区| 国产日韩欧美综合在线| 亚洲一区欧美二区| 亚洲欧美制服另类日韩| 欧美视频专区一二在线观看| 亚洲黄色精品| 日韩午夜av电影| 欧美精品粉嫩高潮一区二区| 欧美国产日韩在线| 亚洲国产精品第一区二区| 久久亚洲欧洲| 国产日产亚洲精品| 欧美在线播放| 久久伊人亚洲| 亚洲国产精品久久91精品| 久久综合久久综合九色| 欧美成人中文字幕在线| 亚洲国产精品热久久| 欧美a一区二区| 亚洲国产欧美在线人成| 夜色激情一区二区| 欧美三级视频在线| 亚洲综合欧美| 久久久久久香蕉网| 亚洲高清毛片| 欧美精品三级在线观看| 一区二区冒白浆视频| 欧美一级大片在线观看| 国产一区成人| 欧美大片一区| 亚洲图片欧美日产| 久久久久成人精品| 欧美黄色影院| 韩国精品在线观看| 久久爱www久久做| 久久综合九色欧美综合狠狠| 在线观看欧美成人| 欧美日韩成人综合在线一区二区| 一区二区三区精品国产| 久久九九99| 亚洲人成7777| 国产精品色午夜在线观看| 亚洲欧美一区二区精品久久久| 麻豆久久精品| 亚洲天堂网站在线观看视频| 国产精品一二三四区| 久久久久久一区| 亚洲裸体视频| 久久久欧美精品| 一区二区三区高清在线| 国产一区二区三区免费不卡| 免费欧美电影| 亚洲自拍另类| 欧美激情精品久久久久久大尺度| 中日韩视频在线观看| 亚洲午夜视频在线观看| 久久综合狠狠综合久久综合88| 亚洲日本成人网| 国产婷婷色一区二区三区在线| 美女脱光内衣内裤视频久久影院| 99热在这里有精品免费| 卡通动漫国产精品| 亚洲欧美国产va在线影院| 亚洲电影免费观看高清| 国产精品进线69影院| 免费一级欧美在线大片| 亚洲一区在线播放| 亚洲国内欧美| 久久综合久久综合久久| 午夜精品三级视频福利| 日韩视频永久免费| 韩国成人福利片在线播放| 国产精品www色诱视频| 免费影视亚洲| 欧美在线亚洲| 亚洲先锋成人| 亚洲免费观看高清完整版在线观看| 久久综合久久综合久久| 欧美在线视频一区二区| 亚洲欧美日韩国产综合在线| 日韩视频免费观看高清完整版| 狠狠色丁香婷婷综合| 国产欧美日韩麻豆91| 国产精品久久午夜| 国产精品v欧美精品v日本精品动漫| 老司机凹凸av亚洲导航| 久久精品中文字幕免费mv| 午夜精品免费视频| 亚洲女爱视频在线| 亚洲一区国产一区| 亚洲综合精品| 亚洲尤物视频在线| 亚洲一二三四久久| 亚洲无限乱码一二三四麻| 99精品热视频| 在线视频欧美精品| 亚洲午夜av在线| 亚洲尤物在线| 性欧美大战久久久久久久免费观看 | 欧美不卡在线视频| 米奇777超碰欧美日韩亚洲| 久久久精品国产99久久精品芒果| 亚洲欧美日韩一区二区三区在线| 午夜激情综合网| 久久精品女人的天堂av| 午夜亚洲性色视频| 欧美一区二区视频97| 性做久久久久久久免费看| 亚洲在线免费观看| 亚洲欧美国产视频| 欧美影视一区| 久久―日本道色综合久久| 久久综合亚州| 欧美国产精品日韩| 欧美日本国产一区| 国产精品久久久久久久app| 国产精品久久一区主播| 国内精品国产成人| 亚洲国产精品久久人人爱蜜臀| 亚洲美女毛片| 亚洲欧美国产精品va在线观看| 久久精品免费电影| 亚洲国产经典视频|