




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 算符优先分析器 include stdio h include stdlib h include iostream h char data 20 20 算符优先关系 char s 100 模拟符号栈 s char lable 20 文法终极符集 char input 100 文法输入符号串 char string 20 10 用于输入串的分析 int k char a int j char q int r 文法规则个数 int r1 转化后文法规则个数 char st 10 30 用来存储文法规则 char first 10 10 文法非终结符 FIRSTVT 集 char last 10 10 文法非终结符 LASTVT 集 int fflag 10 0 标志第 i 个非终结符的 FIRSTVT 集是否已求 出 int lflag 10 0 标志第 i 个非终结符的 LASTVT 集是否已求出 int deal 对输入串的分析 int zhongjie char c 判断字符 c 是否是终极符 int xiabiao char c 求字符 c 在算符优先关系表中的下标 void out int j int k char s 打印 s 栈 void firstvt char c 求非终结符 c 的 FIRSTVT 集 void lastvt char c 求非终结符 c 的 LASTVT 集 void table 创建文法优先关系表 void main int i j k 0 printf 请输入文法规则数 scanf d printf 请输入文法规则 n for i 0 i r i scanf s st i 存储文法规则 初始化 FIRSTVT 集和 LASTVT 集 first i 0 0 first i 0 和 last i 0 分别表示 st i 0 非终极 符的 FIRSTVT 集和 LASTVT 集中元素的个数 last i 0 0 for i 0 i r i 判断文法是否合法 for j 0 st i j 0 j if st i 0 Z printf 不是算符文法 n exit 1 if st i j A exit 1 for i 0 i r i for j 0 st i j 0 j if st i j Z lable k lable k 1 0 table printf 每个非终结符的 FIRSTVT 集为 n 输出每个非终结符的 FIRSTVT 集 for i 0 i r i printf c st i 0 for j 0 j first i 0 j printf c first i j 1 printf n printf 每个非终结符的 LASTVT 集为 n 输出每个非终结符的 LASTVT 集 for i 0 i r i printf c st i 0 for j 0 j last i 0 j printf c last i j 1 printf n printf 算符优先分析表如下 n for i 0 lable i 0 i printf t c lable i printf n for i 0 i k 1 i printf c t lable i for j 0 j k 1 j printf c t data i j printf n printf 请输入文法输入符号串以 结束 scanf s input deal void table char text 20 10 int i j k t l x 0 y 0 int m n x 0 for i 0 i r i firstvt st i 0 lastvt st i 0 for i 0 i else text x y st i j y text x y 0 x y 0 r1 x printf 转化后的文法为 n for i 0 i x i 输出转化后的文法规则串 printf s n text i for i 0 i 后的转化文法 用于最后的规约 string i 0 text i 0 for j 3 l 1 text i j 0 j l string i l text i j string i l 0 for i 0 i x i for j 1 text i j 1 0 j if zhongjie text i j n xiabiao text i j 1 data m n if text i j 2 0 n xiabiao text i j 2 data m n if zhongjie text i j k r k if st k 0 text i j 1 break m xiabiao text i j for t 0 t first k 0 t n xiabiao first k t 1 data m n if zhongjie text i j k r k if st k 0 text i j break n xiabiao text i j 1 for t 0 t m xiabiao for t 0 t first 0 0 t n xiabiao first 0 t 1 data m n n xiabiao for t 0 t data n n void firstvt char c 求 FIRSTVT 集 int i j k m n for i 0 i r i if st i 0 c break if fflag i 0 n first i 0 1 m 0 do if m 2 st i m if zhongjie st i m 1 first i n st i m 1 n else if zhongjie st i m 2 first i n st i m 2 n if st i m 1 c firstvt st i m 1 for j 0 j r j if st j 0 st i m 1 break for k 0 k first j 0 k int t for t 0 t n t if first i t first j k 1 break if t n first i n first j k 1 n m while st i m 0 first i n 0 first i 0 n fflag i 1 void lastvt char c 求 LASTVT 集 int i j k m n for i 0 i r i if st i 0 c break if lflag i 0 n last i 0 1 m 0 do if st i m 1 0 st i m 1 if zhongjie st i m last i n st i m n else if zhongjie st i m 1 last i n st i m 1 n if st i m c lastvt st i m for j 0 j r j if st j 0 st i m break for k 0 k last j 0 k int t for t 0 t out 1 k s printf c a out i 1 z input printf 规约 n do q s j if zhongjie s j 1 j j 1 else j j 2 x xiabiao s j y xiabiao q while data x y int m n N for m j 1 m k m for N 0 N r1 N for n 1 string N n 0 n if zhongjie s m break else if zhongjie s m if s m string N n s j 1 string N 0 break k j 1 if k 2 printf c a out i 1 z input printf 结束 n printf 输入串符合文法的定义 n return 1 输入串符合文法的定义 else if data x y data x y 移进 out 1 k s printf c a out i 1 z input printf 移进 n k s k a i else printf nflase return 0 printf nflase return 0 void out int j int k char s int n 0 int i for i j i k i printf c s i n for n 15 n printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西建筑业b类考试试题及答案
- 考点攻克人教版八年级上册物理《声现象》综合练习试卷(解析版含答案)
- 2025急诊主治考试真题及答案
- 2025化学编制考试真题及答案
- 解析卷人教版八年级上册物理声现象《噪声的危害和控制》专题练习练习题(含答案解析)
- 计算机系c 考试题目及答案
- 跨业绩效对比模型-洞察与解读
- 2025年《考评员》应知应会考试题库(附答案)
- 2025年浙江省事业单位招聘考试综合类专业能力测试试卷(法律类)真题模拟训练
- 2025年湖南省事业单位招聘考试综合类专业能力测试试卷(法律类)真题模拟
- 夜场员工合同协议书
- 【DAMA】2025智变-AI赋能政府与央国企智能化转型白皮书
- 新教材部编版二年级上册《4.彩虹》教学设计
- 航空宠物知识培训课件
- 护理人员在职继续教育培训与考评制度
- 综合实践活动课程设计
- 2025年法官员额考试题及答案
- 备考2025年成人高考-专升本-政治考点及必背知识点大全
- 公开课:自发性气胸病人的护理
- 教科版(2017版)科学四年上册《让小车运动起来》说课稿(附反思、板书)课件
- 经腋窝无充气腔镜甲状腺手术
评论
0/150
提交评论