补全:块要开新的一层
(每道题开头都有同一段:上一站的 parser(多记了位置)、show(),和错误类 SemError——错误写成一行「原因@行:列」。)
贯穿的源码:
let rate = 12 ;
let msg = "hi" ;
let total = rate * 3 ;
if ( total >= 30 ) { let big = 1 ; total = total - big ; } else { total = 0 ; }check_stmt 里 if 的两个块现在用的还是外层 scope。补全:给每个块传 Scope(scope)。用贯穿源码加一句 big = 2 ; 验证。
全部评论