while.cpp
来自「一个简单的语法分析器,实现对布尔表达式,算术表达式的分析,以及if语句,FOR语」· C++ 代码 · 共 39 行
CPP
39 行
//分析while循环语句
#include "Parser.h"
int Sen_While()
{
int RTN_ADDR = lineOfEqu + 1;
int bool_addr = Bool_Analysis();
int TRUE_ADDR = EquPush(11, bool_addr, ZERO, 0);
int FALSE_ADDR = EquPush(6, 0, 0, 0);
int rtn1 = 0;
switch(curr_code)
{
case 27: //标志符,说明是赋值语句
Sen_Assign();
rtn1 = expr_rtn_addr;
break;
case 12:
rtn1 = Sen_For(); //for语句
break;
case 13: //if语句
rtn1 = Sen_If();
break;
case 20: //repeat循环语句
rtn1 = Sen_Repeat();
break;
case 26: //while循环语句
rtn1 = Sen_While();
break;
case 2: //begin
rtn1 = Begin();
break;
default: //其他语句为错误
Error(COMMON_ERROR);
break;
}
BackPatch(TRUE_ADDR, rtn1);
int JMP_ADDR = EquPush(6, 0, 0, RTN_ADDR);
BackPatch(FALSE_ADDR, lineOfEqu + 1);
return RTN_ADDR;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?