编译原理(pl0编译程序源代码)

编译原理(pl0编译程序源代码)

ID:35427920

大小:91.38 KB

页数:22页

时间:2019-03-24

编译原理(pl0编译程序源代码)_第1页
编译原理(pl0编译程序源代码)_第2页
编译原理(pl0编译程序源代码)_第3页
编译原理(pl0编译程序源代码)_第4页
编译原理(pl0编译程序源代码)_第5页
资源描述:

《编译原理(pl0编译程序源代码)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、/*PL/O编译程序(C语言版)★编译和运行环境:*VisualC++6.0*WinXP/7★使用方法:★运行后输入PL/O源程序文件名★回答是否将虚拟机代码写入文件★回答是否将符号表写入文件节丸行成功会产生四个文件(词法分析结果.txt符号表.txt虚拟代码.txt源程序和地址.txt)*/#include#include”plO.h”#include^^string^,#definestacksize500〃解释执行时使用的栈intmain(){boolnxtlev[symnum];printf(“请输入源程序文件名:”);scanf(”%

2、s”,fname);fin=fopen(fname,Hrn);//以只读方式打开plO源程序文件cifa=fopen(”词法分析结果.txt”,“w”);fa1=fopen(”源程序和地址.txt”,“w“);〃输出源文件及各行对应的首地址fprintf(fa1输入plO源程序文件名:“);fprintf(fa1,”%s”,fname);if(fin){printf(堤否将虚拟机代码写入文件?(Y/N)”);〃是否输出虚拟机代码scanf("%s",fname);listswitch=(fname[O]=='y,

3、

4、fname[O]==,Y,);printf

5、(堤否将符号表写入文件?(Y/N)”);〃是否输出符号表scanf(H%s",fname);tableswitch=(fname[O]==,y'

6、

7、fname[O]==T);init();〃初始化err=O;cc=cx=ll=0;ch='if(-1!=getsym()){fa=fopenC嘘拟代码.txt“,”w”);fas=fopen(”符号表.txt”,“w”);addset(nxtlev,declbegsys,statbegsys,symnum);nxtlev[period]=true;if(・1==block(0,0,nxtlev)){〃调用编译程序fc

8、lose(fa);fclose(fal);fclose(fas);fclose(fin);return0;"LUAS=eoxLEASAA粼—品件—詣揪刑囲圧M^BESUO①qHoEASM(3匸AV(「0=CML」p」o/v)o3M8-」ls(①壬m=(o=I.匚p」0m)o3m&」1sH・.」e>・・ao=o二p」0aa)o3m8-」1sT.U①£=(o=6〕p」oaa)03m8-」1s(Pe2=(o=8」p」o/V)03M&」1S(amp①oo」d=(ojLdp」OAA)oaM8-」ls(PPO=(0=9」P」OM)03M8-」1S(n(o=0p」o/v

9、)0M&」lsH・・pu①=(0=EP」OAA)03M8-」1Sh・.op.・・(o5p」o多)oaMdels(1SUOO=(0=OJ」P」OA/)03M&」1S工=_e=°・(o=L」p」OM)03M8-」ls窣削*皋扫型風平趾w&{rbM・w怒怖囲區B(・U6①q=(o=o」p」OAA)odMdelscooo一LU①shljeass&①u丄.#jiuAssBowdEz-jluASS^iuiuoohlje'Ass=b①HTjEASSc①」gHE.LUASSEa!EdHE:luASSHse-S".、E'Ass"s①IUQ丄l.luass-snu一iu丄.JEA

10、SS-sn-CM+juJASS即毎毎件曲M怒B_nuH三EAss(++ihscmhvo")」oj=lu一壬孜昱、01一u一po>宀ou」m①」(ucxu一」§(旦。)①SOOJ宀(uxa一匸u①dol・ueo)lu匸d£so宀e匸osop二"(SBJ)①SOOJHL45QSO0J百osoo二工..三細出ffi、兆B空田僅OH匮kseElu匸2(三炯組ffl、兆则當s址吧密=£)J1U匸2(三削阳«、兆据吕曲蛊縣=$)=£§(三削阳«、兆据吕曲蛊縣=450)匕UKJ工・・uu・/攀喪if沒瞅逅

11、坡0(6)」。」」①}(po」①dllluAS)七wsym[2]=constsym;wsym[3]=dosym;wsym[4]=endsym;wsym[5]=ifsym;wsym[6]=oddsym;wsym[7]=procsym;wsym[8]=readsym;wsym[9]=thensym;wsym[10]=varsym;wsym[11]=whilesym;wsym[12]=writesym;strcpy(&(mnemonic[lit][0]),”lit”);〃设置指令名称strcpy(&(mnemonic[opr][0]),HoprH);strcpy(&(

12、mnemonic[lod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。