下载此文档

源程序的输入和扫描.docx


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍

湖南农业大学信息科学技术学院
学 生 实 验 报 告
姓名: 年级专业班级 日期 年 月 日 成绩
课程名称 编译原理实验 实验名称 源程序的输入和扫描 实验类型 设计性
【实验目的、要求】
理解源程序被编译器读取的过程,掌握扫描程序的编写方法。
【实验内容】
编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);
并编制一个扫描子程序,该子程序中每次调用能依次从存放源程序的输入缓冲区中读出一个有效字符。
【实验环境】
计算机 CodeBlocks
【实验步骤、过程】
功能描述
扫描一段源程序,经字符分析后分离出关键字、标识符、运算符、常数和分隔符,并分行显示。
程序结构描述
从文本中读入源程序。
利用 flag 标志记录当前字符的下一个字符的属性 ( 如为空格 flag 就为 0,为分隔符就为 -1 等 ) 。并用
结构体 MySplit 存储当前字符和其下一位标志 flag 。
while 循环依次读入每个字符并判断。 字符串暂存在 buf_string 中。以判断字符是否结束分为以空格结束,以分隔符结束,以注释结束,以运算符和其他字符合并结束,以及以字符结束。
做不同处理。最后再分行显示。

1

流程图(或原理图)
源程序
Buff-text[]
MySplit 结构体数组
While 循环
下一个是分隔符?
N
下一个是空格?
N
下一个是注释?
N
下一个是字符?
结束
关键代码
源程序:
源程序输入和扫描
#include<>
#include<>

Flag=-1
Y
Flag=0
Flag=-2
Y
Y
Flag=1
Y

2

struct MySplit{
char c;
char c_next;
int flag;
};
int Mygetchar(MySplit);
int main(int argc,char *argv[])
{
char* buf_text;// 用来暂存键盘输入的文本
c

源程序的输入和扫描 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cjl201702
  • 文件大小56 KB
  • 时间2021-04-17