/*****************************************************************程序功能:* 用递归下降子程序法判断算术表达式的语法是否正确*作者:* 张帅 东北大学2013级计算机学院*用时:* 8h*完成日期:* 2015.12.24 20:40:06*算术表达式文法:* E->T E1* E1->w0 T E1|ε* T->F T1* T1->w1 F T1|ε* F->I|(E)*其中:* w0:+ -* w1:* /*程序说明:* 输入算术表达式(以'#'结尾)如:x*(high+low)/(y-3)#* 输出"语法分析完成,符合算术表达式文法^_^"* 输入有错则输出相应错误提示。*****************************************************************/#include #include#include//函数声明void recursion();void E();void E1();void T();void T1();void F();int ISw0();int ISw1();int ISI();char *getword();char w[36];char ch;//主程序void recursion(){ ch=' '; printf("请输入表达式:\n"); strcpy(w,getword()); E(); if(strcmp(w,"#")==0) { printf("语法分析完成,符合算术表达式文法^_^\n"); } else { printf("错误! (←_←)\n"); exit(1); }}void E(){ T(); E1();}void E1(){ if(ISw0()) { strcpy(w,getword()); T(); E1(); } else return;}void T(){ F(); T1();}void T1(){ if(ISw1()) { strcpy(w,getword());