个性化阅读
专注于IT技术分析

case语句的翻译

点击下载

Switch和case语句支持多种语言。 case语句的语法如下:

switch E
                begin 
                             case V1: S1
                             case V2: S2
                             .
                             .
	                         .
case Vn-1: Sn-1
default: Sn
                end

其翻译方案如下所示:

将E评估为T的代码

goto TEST
                L1:         code for S1
                              goto NEXT
                L2:         code for S2
                              goto NEXT
                              .
                              .
                              .
                Ln-1:      code for Sn-1
                              goto NEXT
                Ln:         code for Sn
goto NEXT
                TEST:      if T = V1 goto L1     
                               if T = V2goto L2
                               .
                               .
                               .
                               if T = Vn-1 goto Ln-1
                               goto 
NEXT:
  • 当看到switch关键字时, 将生成一个新的临时T和两个新标签test和next。
  • 当出现case关键字时, 则为每个case关键字创建一个新标签Li, 并将其输入到符号表中。每种情况下常量的Vi值和指向此符号表条目的指针都放在堆栈上。
赞(0)
未经允许不得转载:srcmini » case语句的翻译

评论 抢沙发

评论前必须登录!