[转载] LCC编译器的源程序分析(34)continue语句

来源:互联网 发布:淘宝定制产品退货 编辑:程序博客网 时间:2024/05/12 13:21
continue语句的作用是跳过循环体中后面尚未执行的语句,接着进行下一次是否执行循环的判断。比如下面的例子:
 while(表达式1)
 {
       …
       if(表达式2)
 continue;
       …
 }
下面就来仔细地分析LCC里处理continue语句的源程序:
#001 case CONTINUE:
#002         walk(NULL, 0, 0);
#003         definept(NULL);
#004 
#005         if (loop)
#006               branch(loop + 1);
#007         else
#008               error("illegal continue statement/n");
#009 
#010         t = gettok();
#011         expect(';');
#012         break;
2行是复位所有分配的内存。
3行是定义执行点。
5行是判断是否在循环语句中,如果不在,就表示使用这个语句出错,这是在第8行里处理。
6行是处理跳转到下一个循环,由于在以前介绍的三个循环里都是在第2个标号里运行条件判断表达式的,所以调用loop + 1的标号。
10行是获取下一个记号。
11行是判断这个语句是否以分号结束。
  
原创粉丝点击