当前位置: 首页 > 其他范文 > 其他范文

实验一实现简单词法分析器实验内容

作者:缅泰皇家珠宝 | 发布时间:2020-12-16 06:33:37 收藏本文 下载本文

实验一 实现简单的词法分析器 一、实验 内容 实现一个 C 语言子集的词法分析程序。

二、实验要求 1、要求能识别整数、自定义标识符及以下关键字:

+-* / < <= ==!= > >= & && || =()[ ] { } :;, void int float char if else while do!main 2、自己任意书写一小段包含上述部分关键字的 C 语言代码,编写词法分析程序分析所写的代码,可以用任何语言实现,输出程序中所有关键字、整数、自定义标识符对应的二元式。

3、关键字、自定义标识符、整数的类号自己确定,要求将确定的类号以表格的形式书写在纸质实验报告上。

4、要求输出的格式是:假设float的类号是28,则识别float的输出结果是(float,28);对于整数与自定义标识符,假设标识符的类号是 1,则识别标识符的输出结果是(标识符名称 , 1),同时将该标识符放入一张符号表。

5、实例如下:

三、提示 1、程序代码提交给课代表。

2、纸质实验报告内容:实验内容、自己写的待扫描的 C 语言源程序,类号分配表,所实现代码的核心代码,词法分析结果。

实验指导 一、实验涉及的数据结构与变量 1、关键字列表

struct{ char symbol[30];int classID;}keywordtable[33];用于存放实验要求的 33 个关键字,可以在定义该结构数组时直接初始化,给每个关键字分配唯一的类号。

2、符号表 struct{ char name[20];int type;}symtable[100];用于存放源程序中的自定义标识符与整数(不考虑浮点数),其中整数的类号与自定义标识符的类号自行确定,但是不能与关键字的类号相同。

3、二元式列表 struct{ char sign[20];int classID;}eryuanshi[100];用于存放所有识别的二元式,包含关键字、整数、自定义标识符。

4、几个变量 int key_count=33;//关键字的个数 int sym_count;//符号表计数器 int eryuanshi_count;//二元式计数器 二、实验涉及的函数 1、void lookup(char *p)【功能说明】首先在关键字列表 keywordtable 中查询字符串 p,若存在就将该字符串及对应的类号插入二元式列表 eryuanshi;若没有,在符号表 symtable中查询,如果 symtable 中不存在 p 就将 p 插入,这里要分 p 是标识符还是整数区别对待,设置不同的 type 值。

2、void wordanalysis()【功能说明】读入待分析的源代码并进行词法分析,适当的时候调用 lookup函数查造各种数据表。

(实验一)

必修一实验

网络实验一

实验一:求导

VFP实验一

本文标题: 实验一实现简单词法分析器实验内容
链接地址:https://www.dawendou.com/fanwen/qitafanwen/313436.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《实验一实现简单词法分析器实验内容》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

重点推荐栏目

关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有