c语言200行代码带翻译,用C语言翻译8个阶段的海报

5.1.1.2 Translation phases

1 The precedence among the syntax rules of translation is specified by the following

phases. (*5)

1. Physical source file multibyte characters are mapped, in an implementation

defined manner, to the source character set (introducing new-line characters for

end-of-line indicators) if necessary. Trigraph sequences are replaced by

corresponding single-character internal representations.

2. Each instance of a backslash character (\) immediately followed by a new-line

character is deleted, splicing physical source lines to form logical source lines.

Only the last backslash on any physical source line shall be eligible for being part

of such a splice. A source file that is not empty shall end in a new-line character,

which shall not be immediately preceded by a backslash character before any such

splicing takes place.

3. The source file is decomposed into preprocessing tokens (*6) and sequences of

white-space characters (including comments). A source file shall not end in a

partial preprocessing token or in a partial comment. Each comment is replaced by

one space character. New-line characters are retained. Whether each nonempty

sequence of white-space characters other than new-line is retained or replaced by

one space character is implementation-defined.

4. Preprocessing directives are executed, macro invocations are expanded, and

_Pragma unary operator expressions are executed. If a character sequence that

matches the syntax of a universal character name is produced by token

concatenation (6.10.3.3), the behavior is undefined. A #include preprocessing

directive causes the named header or source file to be processed from phase 1

through phase 4, recursively. All preprocessing directives are then deleted.

5. Each source character set member and escape sequence in character constants and

string literals is converted to the corresponding member of the execution character

set; if there is no corresponding member, it is converted to an implementation-defined

member other than the null (wide) character. (*7)

6. Adjacent string literal tokens are concatenated.

7. White-space characters separating tokens are no longer significant. Each

preprocessing token is converted into a token. The resulting tokens are

syntactically and semantically analyzed and translated as a translation unit.

8. All external object and function references are resolved. Library components are

linked to satisfy external references to functions and objects not defined in the

current translation. All such translator output is collected into a program image

which contains information needed for execution in its execution environment.

(*5) Implementations shall behave as if these separate phases occur, even though many are typically folded

together in practice. Source files, translation units, and translated translation units need not

necessarily be stored as files, nor need there be any one-to-one correspondence between these entities

and any external representation. The description is conceptual only, and does not specify any

particular implementation.

(*6) Adjacent string literal tokens are concatenated.

(*7) White-space characters separating tokens are no longer significant. Each

preprocessing token is converted into a token. The resulting tokens are

syntactically and semantically analyzed and translated as a translation unit.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值