資源簡介
做的作業,pl0編譯器,實現帶參數傳遞,可以允許多層嵌套,包括詞法分析,語法分析,語義分析,目標代碼生成等。。

代碼片段和文件信息
#include?“MYPL0.h“
int?main()
{
??char?str[]?=“t1.txt“;??????//程序執行的文件
?
??PL0?cp(str“nasm.txt“);
??fstream?f;
??f.open(strios::in);
??if(f.fail())
??{
??cout<<“文件讀取失敗“;
??exit(0);
??}
symset?fsys;
int?i;
char?flag1flag2;
char?ch;
cout<<“*****************************************************************************“< cout<<“****??????????????????程序完成人:王立春,161110112???????????????????????***“< cout<<“****??????????????????注:程序內置執行t1.txt程序??????????????????????????***“< cout<<“****?????????如果想打開其他程序,請在main中修改str[]變量為相應文件????????***“< cout<<“*****************************************************************************“<
fsys.insert(CONSTSYM)fsys.insert(VARSYM)fsys.insert(PROCSYM);
fsys.insert(BEGINSYM)fsys.insert(CALLSYM)fsys.insert(IFSYM)fsys.insert(WHILESYM);
cp.getsym();??????????????//?詞法分析,分析一個詞
if(cp.checkProgram())?????//檢測程序入口program是否正確
{
???cp.block(000fsys);????//?分程序分析處理功能
???cp.SaveCode();???????????//?保存代碼
???
???cout<<“是否輸出pl0的源程序代碼?“< ???????cin>>flag2;
???if(flag2==‘y‘||flag2==‘Y‘)
???{
????f.get(ch);
???????for(i=0;!f.eof();i++)
???{
????cout?< ???f.get(ch);
???? ??
???}
???}
???cout< ???cin>>flag1;
???if(flag1==‘y‘||flag1==‘Y‘)
???{
????????cp.listcode(0);
???}
???cp.interpret();??????????//?對目標代碼的解釋執行程序?
}
else
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4415??2014-01-02?00:23??pl0編譯器\PL0編譯器\aaaaaaa.dsp
?????文件????????539??2014-01-02?00:19??pl0編譯器\PL0編譯器\aaaaaaa.dsw
?????文件??????58368??2014-01-09?23:42??pl0編譯器\PL0編譯器\aaaaaaa.ncb
?????文件??????49664??2014-01-09?23:42??pl0編譯器\PL0編譯器\aaaaaaa.opt
?????文件????????248??2014-01-09?23:41??pl0編譯器\PL0編譯器\aaaaaaa.plg
?????文件?????651349??2014-01-09?23:16??pl0編譯器\PL0編譯器\Debug\aaaaaaa.exe
?????文件?????910308??2014-01-09?23:16??pl0編譯器\PL0編譯器\Debug\aaaaaaa.ilk
?????文件????3079456??2014-01-09?23:13??pl0編譯器\PL0編譯器\Debug\aaaaaaa.pch
?????文件????1541120??2014-01-09?23:16??pl0編譯器\PL0編譯器\Debug\aaaaaaa.pdb
?????文件?????286046??2014-01-09?23:16??pl0編譯器\PL0編譯器\Debug\main.obj
?????文件?????420049??2014-01-08?19:02??pl0編譯器\PL0編譯器\Debug\MYPL0.obj
?????文件??????99328??2014-01-09?23:41??pl0編譯器\PL0編譯器\Debug\vc60.idb
?????文件?????159744??2014-01-09?23:16??pl0編譯器\PL0編譯器\Debug\vc60.pdb
?????文件????????508??2014-01-09?22:55??pl0編譯器\PL0編譯器\error1.txt
?????文件?????????88??2014-01-09?22:51??pl0編譯器\PL0編譯器\error2.txt
?????文件????????509??2014-01-09?22:58??pl0編譯器\PL0編譯器\error3.txt
?????文件???????1633??2014-01-09?23:16??pl0編譯器\PL0編譯器\main.cpp
?????文件??????21881??2014-01-08?19:02??pl0編譯器\PL0編譯器\MYPL0.CPP
?????文件???????4542??2014-01-09?23:13??pl0編譯器\PL0編譯器\MYPL0.H
?????文件??????????0??2014-01-09?23:41??pl0編譯器\PL0編譯器\nasm.txt
?????文件????????509??2014-01-09?23:42??pl0編譯器\PL0編譯器\t1.txt
?????文件????????399??2014-01-02?23:07??pl0編譯器\PL0編譯器\t2.txt
?????文件????????128??2013-12-29?15:53??pl0編譯器\PL0編譯器\t3.txt
?????文件????????106??2013-12-31?16:03??pl0編譯器\PL0編譯器\t4.txt
?????文件????????206??2014-01-02?20:35??pl0編譯器\PL0編譯器\t6.txt
?????文件????????508??2014-01-09?22:55??pl0編譯器\測試程序\error1.txt
?????文件?????????88??2014-01-09?22:51??pl0編譯器\測試程序\error2.txt
?????文件????????509??2014-01-09?22:58??pl0編譯器\測試程序\error3.txt
?????文件????????509??2014-01-03?10:51??pl0編譯器\測試程序\t1.txt
?????文件????????399??2014-01-02?23:07??pl0編譯器\測試程序\t2.txt
............此處省略11個文件信息
- 上一篇:繪制Bezier曲面和B樣條曲面
- 下一篇:PTAM算法的ppt
評論
共有 條評論