对PL/0作以下修改和扩充,并使用测试用例验证: (1)修改单词:不等号# 改为 != ,只有!符号为非法单词,同时#成为非法 符号。
时间: 2024-05-29 10:09:14 浏览: 77
改为!
(2)扩充语法:增加continue语句
对于第一个修改,只需要在词法分析器中将原本表示"不等于"的符号修改为"!"即可。例如,原本的符号为"<>",现在修改为"!="。
对于第二个扩充,需要在语法分析器中增加相应的产生式及处理逻辑。具体来说,在原有的语法规则中增加一个新的产生式,用于处理continue语句,例如:
statement -> continue ;
在语法分析过程中,遇到continue语句时,直接将分析指针移动到当前循环结构的循环条件语句位置即可。
为了验证以上修改和扩充是否正确,需要编写相应的PL/0程序并进行测试。例如,以下程序用于测试不等于符号的修改:
var a,b;
begin
a := 5;
b := 6;
if a != b then
write("a != b");
else
write("a == b");
end;
end.
上述程序会输出"a != b",证明不等于符号修改成功。
以下程序用于测试continue语句的新增:
var i,j;
begin
i := 0;
j := 0;
while i < 10 do
begin
i := i + 1;
if i mod 2 == 0 then
continue;
j := j + i;
end;
write(j);
end.
上述程序会输出奇数的和35,证明continue语句增加成功。