- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 增加一维数组类型(可增加指令)
增加一维数组后的声明语句语法描述图:
EBNF语法描述:声明语句::=var标识符[‘[‘number’]’]{,标识符[‘[‘number’]’]}
识别数组部分代码实现,在getsym和enter里改动
if(ch==[)//如果是‘[’则认为是数组
{
getchdo; getsymdo;
sum=num;//把getsym取出的数字赋给sum,作为数组的维数
if(ch==])//维数后的应该是‘]’
{
getchdo; sym=arrayp;
}
else
{
error(33);//如果没有‘]’报错
}
if(sum1) error(34);//数组维数不能为0
}
//-----------把一维数组当作变量,把数组填入名字表table里,在enter--------------------
switch(k)
{
case array: //数组时
table[(*ptx)-1].size=sum;//为数组变量开辟一个长度sum的空间
for(i=0;isum;i++)
{
table[(*ptx)].level=lev; //填入层次
table[(*ptx)].adr=(*pdx); //填入地址
strcpy(table[(*ptx)].name,#); //用#做为该数组的名字
table[(*ptx)].kind=variable; //类型为变量
(*ptx)++;
(*pdx)++;
}
sum=0; //清空sum
(*ptx)--;
break;
}
增加数组后赋值语句语法描述图:
if(sym==varsym)/*收到变量声名符号,开始处理变量声名*/
{
getsymdo;
do{
vardeclarationdo(tx,lev,dx);
if(sym==arrayp)////
{
enter(array,tx,lev,dx);
getsymdo;
}////
while(sym==comma)
{
getsymdo;//
vardeclarationdo(tx,lev,dx);
if(sym==arrayp) ////
{
enter(array,tx,lev,dx);
getsymdo;
}////
}
if(sym==semicolon)
{
getsymdo;//
}
else
{
error(5);
}
}while(sym==ident);
}
数组单元在名字表中的位置:
因为把数组当成一种特殊的变量,所以也可以当做因子使用,不用做任何修改。
当使用数组中的单元时候,找到单元在名字表位置时调用position。
代码实现:在position里改动
int position(char * idt,int tx)
{
if(ch==[) getsymdo;//如果取到的符号为‘]’则认为是数组
if(sym==arrayp)//判断
您可能关注的文档
- 堆场道路施工方案.doc
- 五子棋游戏课程设计.doc
- 基于单片机设计的自行车速度测试系统毕业论文.doc
- 基于51单片机的烟雾报警器设计论文毕业设计.doc
- 开关电源设计毕业论文.doc
- 基于光敏电阻路灯的智能控制毕业设计.doc
- 基于单片机的智能语音识别系统设计毕业设计.doc
- 某某镇墓园景观设计.doc
- xx煤业绩效考核管理办法.doc
- 克拉玛依市世纪大厦安全施工方案.doc
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)