算符优先分析实验报告⼀、程序功能
实现算符优先分析算法,完成以下描述算术表达式的算符优先⽂法的算符优先分析过程。G[S]:S->#E#E->E+T|TT->T*F|FF->P^F | PP->(E)|i
⼆、主要数据结构
char VT[]定义符号表;struct type{char origin; char array[5]; int length;}定义产⽣式类型;table[][]定义优先关系矩阵。三、程序结构
int locate(char s[],char c) 辅助函数,在⼀个字符串中查找某特定字符;
int Find(type G[],char s[],int m,int n) 查找与已搜索出的短语对应的产⽣式,返回该产⽣式的序号;void doScan()对输⼊串进⾏分析的主控函数;void print(char s[],int k,int tag,char str[],int i,char action[])输出分析过程的函数。在find()和doScan()中调⽤locate()函数,在doScan()中调⽤find()和print()函数,在main()中调⽤doScan()函数。流程图:
NY成功四、程序测试测试句⼦:i+i*i结果:
测试句⼦:(i+i)*i结果:
五、实验总结
本实验重点解决算符优先矩阵的构造和算符优先算法的实现,我认为难点是构造优先矩阵,这个就需要掌握⽅法多练习,优先算法只需将PPT上的流程图⼀步⼀步地转化为代码就可以了。总体来说,本实验⽐较简单。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fupindai.com 版权所有 赣ICP备2024042792号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务