Java实现递归下降子程序
一、实验目的 根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实 验的目的主要是加深对递归下降分析法的理解。
二、实验内容 程序输入/输出示例(以下仅供参考):
对下列文法,用递归下降分析法对任意输入的符号串进行分析: (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+ii# (3)输出结果:i+ii#为合法符号串 备注:输入一符号串如 i+i*#,要求输出为“非法的符号串”。 注意: 1. 表达式中允许使用运算符(±*/)、分割符(括号)、字符 I,结束符#; 2. 如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好)。
三、实验要求: 1. 对语法规则有明确的定义; 2. 编写的分析程序能够进行正确的语法分析; 3. 对于遇到的语法错误,能够做出简单的错误处理,给出简单的错误提示,保证顺利完成
5
语法分析过程;
import java.util.Scanner;
public class RecursiveDrop {
//输入的表达式
static String expression;
//当前的符号
static Character sym;
//当前指针
static int index;
//出现错误语法了
static boolean hasErr;
public static void main(String []main){
Scanner input=new Scanner(System.in);
expression=input.next();
while (!expression.equals(