1/7
文档分类:IT计算机

源程序的输入和扫描.docx


下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
源程序的输入和扫描.docx
文档介绍:






湖南农业大学信息科学技术学院


学 生 实 验 报 告



姓名: 年级专业班级 日期 年 月 日 成绩



课程名称 编译原理实验 实验名称 源程序的输入和扫描 实验类型 设计性



【实验目的、要求】




理解源程序被编译器读取的过程,掌握扫描程序的编写方法。





【实验内容】

编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);

并编制一个扫描子程序,该子程序中每次调用能依次从存放源程序的输入缓冲区中读出一个有效字符。



【实验环境】

计算机 CodeBlocks



【实验步骤、过程】



功能描述



扫描一段源程序,经字符分析后分离出关键字、标识符、运算符、常数和分隔符,并分行显示。



程序结构描述

从文本中读入源程序。

利用 flag 标志记录当前字符的下一个字符的属性 ( 如为空格 flag 就为 0,为分隔符就为 -1 等 ) 。并用

结构体 MySplit 存储当前字符和其下一位标志 flag 。

while 循环依次读入每个字符并判断。 字符串暂存在 buf_string 中。以判断字符是否结束分为以空格结束,以分隔符结束,以注释结束,以运算符和其他字符合并结束,以及以字符结束。

做不同处理。最后再分行显示。

























1






流程图(或原理图)



源程序





Buff-text[]





MySplit 结构体数组






While 循环






下一个是分隔符?




N






下一个是空格?





N



下一个是注释?





N



下一个是字符?









结束







关键代码

源程序:



源程序输入和扫描

#include<stdio.h>

#include<malloc.h>






































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