第一范文网 - 专业文章范例文档资料分享平台

实验5 LL(1)语法分析程序的设计与实现(C语言)教学文稿 - 图文

来源:用户分享 时间:2025/7/27 0:40:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

资料收集于网络,如有侵权请联系网站删除

实验五 LL(1)文法识别程序设计

一、实验目的

通过LL(1)文法识别程序的设计理解自顶向下的语法分析思想。 二、实验重难点

FIRST集合、FOLLOW集合、SELECT集合元素的求解,预测分析表的构造。 三、实验内容与要求

实验内容:

1. 阅读并理解实验案例中LL(1)文法判别的程序实现; 2. 参考实验案例,完成简单的LL(1)文法判别程序设计。 四、实验学时

4课时

五、实验设备与环境 C语言编译环境

六、实验案例

1. 实验要求

参考教材93页预测分析方法,94页 图5.11 预测分析程序框图,编写表达式文法的识别程序。要求对输入的LL(1)文法字符串,程序能自动判断所给字符串是否为所给文法的句子,并能给出分析过程。

表达式文法为: E?E+T|T T?T*F|F F?i|(E)

2. 参考代码

word可编辑

资料收集于网络,如有侵权请联系网站删除

word可编辑

资料收集于网络,如有侵权请联系网站删除

为了更好的理解代码,建议将图5.11做如下标注:

word可编辑

资料收集于网络,如有侵权请联系网站删除

/* 程序名称: LL(1)语法分析程序 */ /* E->E+T|T */ /* T->T*F|F */ /* F->(E)|i */

/*目 的: 对输入LL(1)文法字符串,本程序能自动判断所给字符串是否为所给文法的句子,并能给出分析过程。

/********************************************/ /* 程序相关说明 */ /* A=E' B=T' */

/* 预测分析表中列号、行号 */ /* 0=E 1=E' 2=T 3=T' 4=F */ /* 0=i 1=+ 2=* 3=( 4=) 5=# */

/************************************/ #include\#include \#include \#include \

/*定义链表这种数据类型参见:

http://wenku.http://www.china-audit.com//link?url=_owQzf8PRZOt9H-5oXIReh4X0ClHo6zXtRdWrdSO5YBLpKlNvkCk0qWqvFFxjgO0KzueVwEQcv9aZtVKEEH8XWSQCeVTjXvy9lxLQ_mZXeS###*/ struct Lchar{ char char_ch;

struct Lchar *next;

}Lchar,*p,*h,*temp,*top,*base;

/*p指向终结符线性链表的头结点,h指向动态建成的终结符线性链表节点,top和base分别指向非终结符堆栈的顶和底*/

word可编辑

实验5 LL(1)语法分析程序的设计与实现(C语言)教学文稿 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4amkl4bne700kc5204u903ypi6bk1500j31_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top