91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 10.22MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-10
  • 語言: 其他
  • 標簽: 編譯原理??

資源簡介

PL/0 詞法分析、語法分析、語義分析與中間代碼生成、解釋執行
最終結果輸出目標代碼、符號表、解釋執行結果

資源截圖

代碼片段和文件信息

#include
#include
#include



#define?num_word?13???????//關鍵字個數?
#define?num_tab?100?????//?符號表容量?
#define?num_bit?14???????//?數字的最大位數?
#define?al?10?????????//?標識符的最大長度??
#define?num_err?30????
#define?amax?2048?????//?地址上界
#define?levmax?3??????//?最多只允許3層嵌套
#define?cxmax?200?????//?最多的虛擬機代碼數
#define?num_ssize?500?//運行時數據棧元素最多為500個?

?
enum?SYM?{
SYMUNUSE//0不設保留字
SYMIDENTIFIER?SYMNUM
SYMPLUS?SYMMINUSSYMMUL?SYMDIV?//+?-?*?/
SYMODD?
SYMEQL?//=
SYMNEQ//!=
SYMLSS?//?<
SYMLEQ?//<=
SYMBIG?//?>
SYMBIGEQ?//?>=
SYMLEFT?//?(
SYMRIGHT?//?)
SYMCOM?//?
SYMSEM?//?;分號
SYMPOT?//?.
SYMASSI?//?:=
SYMBEGIN?SYMEND?SYMIF?SYMTHEN?SYMWHILE
SYMWRITE?SYMREAD?SYMDO?SYMCALL?SYMCONST
SYMVAR?SYMPROCEDURE
};
#define?symnum?32


enum?object?{
constant
variable
procedure
};


enum?fct?{
LIT?OPR?LOD
STO?CAL?INT
JMP?JPC
};
#define?fctnum?8


struct?instruction
{
enum?fct?f;?
int?l;
int?a;?????
};

//int?stacktop;
bool?listswitch;????
bool?tableswitch;??
char?ch;???
enum?SYM?sym;?
char?id[al?+?1];??????//?當前SYMIDENTIFIER,多出的一個字節用于存放0?
int?num;????????????//當前SYMNUM?
int?chadr?ll;?????????//?getch使用的計數器,chadr表示當前字符(ch)的位置?
int?cx;?????????????//?虛擬機代碼指針?取值范圍[0?cxmax-1]
char?line[81];??????//?讀取行緩沖區?
char?a[al?+?1];???????//?臨時符號,多出的一個字節用于存放0?
struct?instruction?code[cxmax];?//存放虛擬機代碼的數組?
char?word[num_word][al];????????//保留字?
enum?SYM?wsym[num_word];?????//保留字對應的符號值?
enum?SYM?ssym[256];??????//單字符的符號值?
char?mnemonic[fctnum][5];???//虛擬機代碼指令名稱?
bool?declbegsys[symnum];????//?表示聲明開始的符號集合?
bool?statbegsys[symnum];????//?表示語句開始的符號集合?
bool?facbegsys[symnum];?????//?表示因子開始的符號集合?

//符號表
struct?TABLE
{
char?name[al]; ???
enum?object?kind;
int?val;????????????
int?level;??????????
int?adr;????????????
int?size;??????????
};

struct?TABLE?table[num_tab];?//?符號表?

FILE*?fin;
char?fname[al];
int?err;????????//錯誤計數

void?error(int?n);
void?GETSYM();
void?getch();
void?init();
void?GEN(enum?fct?x?int?y?int?z);
void?test(bool*?s1?bool*?s2?int?n);
int?inset(int?e?bool*?s);
int?addset(bool*?sr?bool*?s1?bool*?s2?int?n);
int?subset(bool*?sr?bool*?s1?bool*?s2?int?n);
int?mulset(bool*?sr?bool*?s1?bool*?s2?int?n);
int?BLOCK(int?lev?int?tx?bool*?fsys);
void?exec();
void?factor(bool*?fsys?int*?ptx?int?lev);
void?term(bool*?fsys?int*?ptx?int?lev);
void?condition(bool*?fsys?int*?ptx?int?lev);
void?expression(bool*?fsys?int*?ptx?int?lev);
void?statement(bool*?fsys?int*?ptx?int?lev);
void?listcode(int?cx0);
void?printcode();
void?vardeclaration(int*?ptx?int?lev?int*?pdx);
void?constdeclaration(int*?ptx?int?lev?int*?pdx);
int?position(char*?idt?int?tx);
void?enter(enum?object?k?int*?ptx?int?lev?int*?pdx);
int?whereb(int?l?int*?s?int?b);


void?init()
{
int?i;

/*?設置單字符符號?*/
for?(i?=?0;?i?<=?255;?i++)
{
ssym[i]?=?SYMUNUSE;
}
s

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-12-18?11:58??final\
?????目錄???????????0??2019-12-08?23:43??final\.vs\
?????目錄???????????0??2019-12-08?23:43??final\.vs\final\
?????目錄???????????0??2019-12-18?10:22??final\.vs\final\v16\
?????文件???????41984??2019-12-18?11:58??final\.vs\final\v16\.suo
?????文件?????5750784??2019-12-18?11:58??final\.vs\final\v16\Browse.VC.db
?????目錄???????????0??2019-12-08?23:43??final\.vs\final\v16\ipch\
?????目錄???????????0??2019-12-11?13:59??final\.vs\final\v16\ipch\AutoPCH\
?????目錄???????????0??2019-12-10?14:00??final\.vs\final\v16\ipch\AutoPCH\83aad7005a654c2b\
?????文件????31719424??2019-12-10?14:00??final\.vs\final\v16\ipch\AutoPCH\83aad7005a654c2b\FINAL.ipch
?????目錄???????????0??2019-12-10?12:32??final\.vs\final\v16\ipch\AutoPCH\8c6080a761c5afa0\
?????文件?????3801088??2019-12-10?12:32??final\.vs\final\v16\ipch\AutoPCH\8c6080a761c5afa0\FINAL.ipch
?????目錄???????????0??2019-12-10?13:04??final\.vs\final\v16\ipch\AutoPCH\c3613f418180513b\
?????文件?????3604480??2019-12-10?13:57??final\.vs\final\v16\ipch\AutoPCH\c3613f418180513b\FINAL.ipch
?????目錄???????????0??2019-12-12?13:53??final\.vs\final\v16\ipch\AutoPCH\dcb3fbd016563d50\
?????文件?????3604480??2019-12-18?10:22??final\.vs\final\v16\ipch\AutoPCH\dcb3fbd016563d50\FINAL.ipch
?????目錄???????????0??2019-12-17?19:24??final\Debug\
?????文件???????57856??2019-12-17?19:24??final\Debug\final.exe
?????文件??????781800??2019-12-17?19:24??final\Debug\final.ilk
?????文件?????????567??2019-12-17?19:24??final\Debug\final.log
?????文件???????64445??2019-12-17?19:24??final\Debug\final.obj
?????文件???????64421??2019-12-11?15:16??final\Debug\final.obj.enc
?????文件??????733184??2019-12-17?19:24??final\Debug\final.pdb
?????目錄???????????0??2019-12-17?19:24??final\Debug\final.tlog\
?????文件?????????750??2019-12-17?19:24??final\Debug\final.tlog\CL.command.1.tlog
?????文件????????4044??2019-12-17?19:24??final\Debug\final.tlog\CL.read.1.tlog
?????文件?????????384??2019-12-17?19:24??final\Debug\final.tlog\CL.write.1.tlog
?????文件?????????199??2019-12-17?19:24??final\Debug\final.tlog\final.lastbuildstate
?????文件????????1108??2019-12-17?19:24??final\Debug\final.tlog\link.command.1.tlog
?????文件????????3230??2019-12-17?19:24??final\Debug\final.tlog\link.read.1.tlog
?????文件?????????396??2019-12-17?19:24??final\Debug\final.tlog\link.write.1.tlog
............此處省略28個文件信息

評論

共有 條評論