云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 编译原理实验指导

编译原理实验指导

  • 62 次阅读
  • 3 次下载
  • 2025/6/2 14:41:19

的、实验内容、实验实现过程、源程序、实验结果、实验体会)。 实现代码: #include #include # include void pro_process(char *); void main( ) {//定义扫描缓冲区

char buf[4048]={'\\0'}; //缓冲区清0 //调用预处理程序 pro_process(buf);

//在屏幕上显示扫描缓冲区的内容 cout<

void pro_process(char *buf) {

ifstream cinf(\

int i=0; //计数器

char old_c='\\0',cur_c; //前一个字符,当前字符 bool in_comment=false; //false表示当前字符未处于注释中 while(cinf.read(&cur_c,sizeof(char))) //从文件读一个字符 {

3

switch(in_comment) {case false:

if(old_c=='/' && cur_c=='*') //进入注释 { i--; //去除已存入扫描缓冲区的字符’/’ in_comment=true; } else {

if(old_c=='\\\\' && cur_c=='\\n') //发现续行 i--; //去除已存入扫描缓冲区的字符’\\’ else {

if(cur_c>='A' && cur_c<='Z') //大写变小写 cur_c+=32;

if(cur_c=='\\t' || cur_c=='\\n') //空格取代tab换行 cur_c=' '; buf[i++]=cur_c; } } break; case true:

if(old_c=='*' && cur_c=='/') //离开注释 in_comment=false; }//end of switch

4

old_c=cur_c; //保留前一个字符 }//end of while

buf[i++]='#'; //在源程序词尾加字符# }

5

实验二 简单程序设计语言的词法分析器

实验学时:2学时 实验目的:

掌握词法分析器的原理

将源程序预处理、状态图转换等结合,建立简单的程序设计语言词法分析器 实验内容:

要求能对简单程序设计语言进行词法分析,具体内容如下:

字符集

{?a?..?z?, ?0?..?9?,?+?,?=?,?*?,?,?,?;?,?(?,?)?,?#?}

若发现字符集之外的字符,即为非法字符,当出现非法字符时终止词法分析器的运行。

单词集

基本字:begin、end、integer、real 标识符:以字母开始的数字字母串 无符号整常数 无符号实常数 运算符:+、*、++、= 界符:,、;、(、)、#

错误词形:. (前后无数字字符的小数点) 单词编码

6

搜索更多关于: 编译原理实验指导 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

的、实验内容、实验实现过程、源程序、实验结果、实验体会)。 实现代码: #include #include # include void pro_process(char *); void main( ) {//定义扫描缓冲区 char buf[4048]={'\\0'}; //缓冲区清0 //调用预处理程序 pro_process(buf); //在屏幕上显示扫描缓冲区的内容 cout<

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com