由于项目时间紧迫,这个项目牵扯到小弟的毕业问题,请大家务必帮帮忙,这两天我也在猛看yacc,希望大家能给我点帮助,题目如下:
  1.利用语法产生工具Yacc(结合C或C++语言在windows平台),实现指令ADD的语法分析(假定此法分析器已经提供);
  2.输出正确指令的编号,或输出出错信息;
  3.指令ADD的语法格式如下:
        句型:
            (1) ADD rd, rs, rt
            (2) ADD dst, *+ARm(disp1), *+ARn(disp2)
            (3) ADD dst, ARm(IR0), rt
            (4) ADD dst, *+ARm(disp), Imm
            (5) ADD dst, rs, Arm(IR0)
            (6) ADD dst, rs, *+ARm(disp)
            (7) ADD dst, ARm(IR0), ARn(IR1)
注:rs:寄存器 (通用寄存器r0~r31)
    rt: 寄存器 (通用寄存器r0~r31)
    rd: 寄存器 (通用寄存器r0~r31)
    dst: 寄存器 (通用寄存器r0~r7)
    ARm: 间接寻址 (辅助寄存器r0~r7)
    ARn: 间接寻址 (辅助寄存器r0~r7)
    IR0: r24
    IR1: r24
    disp,disp1,disp2:偏移量
    Imm: 立即数
以上就是这道问题,测试数据就是输入如ADD r2, r12, r29,给出结果1,ADD r3, *+ARm(2), *+ARn(3) 得到的结果是2,如果输入错误,要给出错误信息,并输出在第几个编号出错。希望大家给于帮助