实验指导 step6:
step6 我们要支持 if 语句和条件表达式(又称三元/三目表达式,ternary expression)。
语法上的改动是:
if 表达式
statement : 'return' expression ';' | expression? ';'| 'if' '(' expression ')' statement ('else' statement)?条件表达式
assignment : conditional | Identifier '=' expression conditional : logical_or | logical_or '?' expression ':' conditionalblock_item
:为了下一阶段做准备function : type Identifier '(' ')' '{' block_item* '}'block_item : statement | declaration
if 语句的语义和 C 以及常识相同,条件表达式优先级只比赋值高。