- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实习设计
词法分析程序
一.实习目的
构造一个小语言的词法分析程序。
二.实习要求
设计一个包含简单算术表达式、赋值语句、IF语句的小语言的文法。
根据此文法,构造一个词法分析程序,输入以“#”为结束符的源程序,输出为各类单词表和单词串文件。
源程序和输出的单词串均以文件的形式存放。
单词的自身值均为其对应的表的指针,如标识符表的指针、常数表的指针等。
提交实习报告和程序运行结果。
三.相关图表
1.状态转换图
图一:标志符和关键字的识
图二:整数的识别
图三:实数的识别
2.单词符号对照表
单词符号 助记符 内码值 标志符
整数
浮点数
关键字
‘
“
!
!=
^
%
%=
=
==
&&
&
|
||
,
;
(
)
[
]
{
}
+
++
+=
-
――
-=
*
*=
/
/= $ID
$Int
$FLOAT
$KeyWord
$Syin
$Yinhao
$Not
$NotQU
$Weiyu
$GESHICONTROL
$mo-EQ
$EQU
$ EQ
$and
$Wyu
$Whuo
$Or
$douhao
$fenhao
$Lpar
$Rpar
$Lmid
$Rmid
$Lbig
$Rbig
$Plus
$Plus-Plus
$Plus-EQ
$dec
$dec-dec
$dec-EQ
$Mul
$Mul-EQ
$Div
$Div-EQ 字符串值
数值
数值
字符串值
‘
“
!
!=
^
%
%=
=
==
&&
&
|
||
,
;
(
)
[
]
{
}
+
++
+=
-
――
-=
*
*=
/
/=
四.源程序和结果
1.分析器程序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Max 120
FILE *fprogram;
FILE *foutput;
int WordEnd;
char Buffer[Max*2];
char ch;
int IsLetter(char ch)
{
if( (ch>='a' && ch<='z') || (ch>='A' && ch<='Z') )
{
return(1);
}
else
{
return(0);
}
}
int IsDigit(char ch)
{
if(ch>='0' && ch<='9')
{
return(1);
}
else
{
return(0);
}
}
char *Par(char par, char *str)
{
switch (par)
{
case '(':
str="$Lpar";
break;
case ')':
str= "$Rpar";
break;
case '[':
str= "$Lmid";
break;
case ']':
str= "$Rmid";
break;
case '{':
str= "$Lbig";
break;
case '}':
str= "$Rbig";
break;
default:
break;
}
return str;
}
void WriteBuffer()
{
char tmpch=' ';
int i=0;
long pos;
WordEnd=0;
for(int t=0; t<Max*2; t++)
{
Buffer[t]=NULL;
}
while(i<Max)
{
ch=fgetc(fprogram);
if(ch!=EOF)
{
if(ch=='\n' || ch=='\t' || ch==' ')
{
ch=' ';
}
if( !(tmpch==' ' && ch==' ') )
{
if(ch=='/')
{
ch=fgetc(fprogram);
if(ch!=EOF)
{
if( ch=='*')
{
char flo;
while(1)
{
ch=fgetc(fprogram);
if(ch!=EOF)
{
if(ch=='*')
{
flo=ch;
ch=fgetc(fpr
您可能关注的文档
- 组建市投资控股集团有限公司资料.doc
- 组成原理课程设计报告8位的CISC模型机.doc
- 组织协调措施资料.doc
- 组织架构优化调整资料1214.ppt
- 终极版腾讯绩效考核资料设计.docx
- 终稿员工关怀活动资料.doc
- 终稿大学生职业生涯规划设计大赛获奖作品.doc
- 经典中秋节活动策划资料全集15篇.doc
- 结构抗震设计试题库2.doc
- 结构有限元课程设计报告.doc
- 胡希恕金匮要略讲座之妇人妊娠病脉证并治第二十.docx
- 胡希恕金匮要略讲座之趺蹶手指臂肿转筋阴狐疝蛔虫病脉证治第十九.docx
- 胡希恕金匮要略讲座之肺痿肺痈咳嗽上气病脉证治第七.docx
- 胡希恕金匮要略讲座之疮痈肠痈浸淫病脉证并治第十八.docx
- 胡希恕金匮要略讲座之腹满寒疝宿食病脉证治第十.docx
- 胡希恕金匮要略讲座之百合狐惑阴阳毒病脉证治第三.docx
- 5-SDS-聚丙烯酰胺凝胶电泳.ppt
- 中国高真空度真空腔体行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030版).docx
- 中国驻车空调行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030).docx
- 中国鱿鱼干行业市场深度调研及竞争格局与投资发展研究报告(2024-2030).docx
文档评论(0)