首页 > 代码库 > 递归下降分析
递归下降分析
#include<stdio.h> char scaner(char*input,int* p); void S(char*input,int* p); void T(char*input,int* p); void T1(char*input,int* p); void error(); int sym=0; int main() { int p=0; char input[200]={0}; printf("请输入你要识别的单词\n"); printf("单词只能由 ( ) a ^ , 组成,且单词必须以$#结尾\n"); scanf("%[^#]s",input); printf("the word you input is : %s\n",input); sym=scaner(input,&p); S(input,&p); if(sym==‘$‘) printf("sucess\n"); else printf("fail"); do { ; }while(1); return 0; } char scaner(char*input,int *p) { char temp=input[*p]; (*p)++; return temp; } void S(char*input,int* p) { if(sym==‘a‘||sym==‘^‘) sym=scaner(input,p); else if(sym==‘(‘) { sym=scaner(input,p); T(input,p); if(sym==‘)‘) sym=scaner(input,p); else error(); } return ; } void T(char*input,int* p) { S(input,p); T1(input,p); return ; } void T1(char*input,int* p) { if(sym==‘,‘){ sym=scaner(input,p); S(input,p); T1(input,p);} else if(sym!=‘)‘) error(); } void error() { printf("error!!!"); return ; }
递归下降分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。