赞
踩
根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。
程序输入/输出示例(以下仅供参考):
对下列文法,用递归下降分析法对任意输入的符号串进行分析:
(1)E- TG
(2)G- +TG|—TG
(3)G- ε
(4)T- FS
(5)S- *FS|/FS
(6)S- ε
(7)F- (E)
(8)F- i
输出的格式如下:
(1) 递归下降分析程序,编制人:姓名,学号,班级
(2) 输入一个以#结束的符号串(包括+—*/()i#):在此位置输入符号串例如:i+i*i#
(3) 输出结果:i+i*i#为合法符号串
备注:输入一符号串如i+i*#,要求输出为“非法的符号串”。
注意:
1. 表达式中允许使用运算符(±*/)、分割符(括号)、字符I,结束符#;
2. 如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好)。
请输入测试次数:3
请输入一个以#结束的符号串:
i+i*i#
请输入一个以#结束的符号串:
i+i/i#
请输入一个以#结束的符号串:
i+i*#
本实验利用自定义的源程序对递归下降分析法进行了实现和测试,结果符合预期的结果
测试源码如下:
import java.util.Scanner;
public class Recursive {
static String str = ""; //待测试语句
static int index = 0; //记录当前读到的序号
/**
* 定义下列文法
* (1)E->iSGE1
* (2)E1->
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。