补全:if 和可选的 else
(每道题开头都有同一段:T() 是上一站 lexer 的替身——源码里 token 之间用空格分开,它切成 (kind, text, line, col);show() 把树写成一行:二元运算全加括号,语句之间用 |。)
补全 stmt 里 if 那一支:吃掉 if、expect「(」、expr、expect「)」、block;若下一个是 else 就再吃一个 block,否则 None。交回 ("if", 条件, 块, else块)。
(每道题开头都有同一段:T() 是上一站 lexer 的替身——源码里 token 之间用空格分开,它切成 (kind, text, line, col);show() 把树写成一行:二元运算全加括号,语句之间用 |。)
补全 stmt 里 if 那一支:吃掉 if、expect「(」、expr、expect「)」、block;若下一个是 else 就再吃一个 block,否则 None。交回 ("if", 条件, 块, else块)。
全部评论