北邮 编译原理 自底向上语法分析实验报告 下载本文

switch(analysis_stack[ip]) {

case 1: PUSH(3,7);printf(\缺少运算符,添加运算符至栈\

case 2: case 12: case 13: PUSH(5,9);printf(\缺少运算符,添加运算符至栈\

case 11:

if( code[pointer] >=3 && code[pointer] <=6 )//期待运算符号 {PUSH(2,16);printf(\缺少右括号,添加右括号至栈\ else if( code[pointer] >= 7 && code[pointer]<=8 )

{PUSH(3,7);printf(\缺少运算符,添加运算符至栈\ break; } }

3.程序测试与运行结果:

测试用例:a$

测试用例:35$

测试用例:x+y$

测试用例:40+6*(3-sum/x)$

测试用例:10*3++4$(错误的事例)

测试用例:7+6)+6$(错误的事例)

测试用例:6*7(+4$(错误的事例)

四.心得体会以及完成的功能