标签:comm ati 姓名 str ref 实验 char s title enter
实验三递归下降分析程序实验
专业 商软2班 姓名 李文辉 学号 201506110168
一、 实验目的
编制一个使用递归下降分析法实现的语法分析程序。
二、 实验内容和要求
输入:正规式
输出:判断该正规式是否正确。
三、 实验方法、步骤及结果测试
可执行程序名:168李文辉.exe

1 #include<stdio.h>
2 #include<string.h>
3 char Token[30];//存储输入的字符
4 char sym;//记录下一个字符
5 char s;//输入字符的传递
6 static int p=0 ;//下一个字符的下标
7 void S();
8 void T();
9 void U();
10 void scaner();//下一个字符
11 void error();//错误结束
12 main()
13 {
14 int i=-1;
15 printf("Please input :\n");
16 do
17 {
18 scanf("%c",&s);i++;
19
20 Token[i]=s;
21 }while(Token[i]!=‘#‘);
22 scaner();
23 S();
24 if(sym==‘#‘)
25 printf("Success!\n");
26 else
27 printf("fail!\n");
28 }
29
30 void scaner()
31 {
32 sym=Token[p];
33 p++;
34 }
35 void error()
36 {
37 printf("error!");
38 }
39 void S()
40 {
41 if(sym==‘a‘||sym==‘^‘)//如果是a或者是^
42 scaner();
43 else if(sym==‘(‘)
44 {
45 scaner();
46 T();
47 if(sym==‘)‘)
48 scaner();
49 else
50 error();
51 }
52 }
53 void T()
54 {
55 S();
56 U();
57 }
58
59 void U()
60 {
61 if(sym==‘,‘)
62 {
63 scaner();
64 S();
65 U();
66 }
67 else if(sym!=‘)‘)
68 error();
69 }

四、 实验总结
通过这个递归下降分析程序,使我懂得了编译器在编译时候的过程。虽然我做出来了这个程序,但是C语言文法的递归下降分析程序有点难度,需要我在以后的时间去慢慢完成。我会在接下来的时间里慢慢去完成C语言文法的递归下降分析程序的。
标签:comm ati 姓名 str ref 实验 char s title enter
原文地址:http://www.cnblogs.com/168-hui/p/6212156.html