规范

每个步骤结尾的 规范 一节都会对这个步骤中的新特性给出规范,方便大家查阅。

step4 语法规范

灰色部分表示相对上一节的修改。


program
    : function

function
    : type Identifier '(' ')' '{' statement '}'

type
    : 'int'

statement
    : 'return' expression ';'

expression : logical_or logical_or : logical_and | logical_or '||' logical_and logical_and : equality | logical_and '&&' equality equality : relational | equality ('=='|'!=') relational relational : additive | relational ('<'|'>'|'<='|'>=') additive
additive : multiplicative | additive ('+'|'-') multiplicative multiplicative : unary | multiplicative ('*'|'/'|'%') unary unary : primary | ('-'|'~'|'!') unary primary : Integer | '(' expression ')'

step4 语义规范

4.1. 如果 ||&& 的子表达式有副作用,那么这就是一个未定义行为。 换言之,不对逻辑表达式的短路求值做要求。

4.2. 比较大小是有符号数的比较大小,因此 0xFFFFFFFF == -1 < 0 == 0x00000000

results matching ""

    No results matching ""

    results matching ""

      No results matching ""