Pl0语言的扩充之for-to语句
扩充内容:
语言成分:for 变量=初值 to 终值 BEGIN 语句系列
扩充步骤:
判断for符号
赋值符号(这一部分可以仿照statement的赋值语句处理)
cx1=cx
与终值比较
cx2=cx
gendo(JPC,0,0)
statementdo翻译语句
变量+=1
gendo(JMP,0,cx1)
code[cx2].a=cx
头文件修改以及关键字部分不在赘述
下面是直接代码修改:
if(sym == forsym)
{
getsymdo;
nxtlev[tosym] = true;
if (sym == ident) /* 准备按照赋值语句处理 */
{
i = position(id, *ptx);
if (i == 0)
{
error(11); /* 变量未找到 */
}
else
{
if(table[i].kind != variable)
{
error(12); /* 赋值语句格式错误 */
i =<