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

資源簡介

西電大三下學期編譯原理大作業,要求實現一個小型的編譯器,包括詞法分析,語法分析,語義分析,四元式

資源截圖

代碼片段和文件信息

#include?“stdlib.h“
#include?“string.h“
#include?“stdio.h“

#define?ACC?-2
#define?syl_if????0??//保留字?if
#define?syl_else??1
#define?syl_while?2
#define?syl_begin?3
#define?syl_end???4
#define?a?????????5
#define?semicolon?6
#define?e?????????7
#define?jinghao???8
#define?s?????????9
#define?L????????10
#define?tempsy???11
#define?EA???????12
#define?EO???????13
#define?plus?????14
#define?times????15
#define?becomes??16
#define?op_and???17
#define?op_or????18
#define?op_not???19
#define?rop??????20
#define?lparent??21
#define?rparent??22
#define?ident????23??//變量
#define?intconst?24

/*****************數據結構說明********************/

char???ch=‘\0‘;??/*從字符緩沖區中讀取當前字符*/
int????count=0;??/*詞法分析結果緩沖區計數器*/
static?char?spelling[10]={“?“};??/*存放識別的字*/
static?char?line[81]={“?“};??/*一行字符緩沖區(?最多?80?個字符)*/
char???*pline;??/*字符緩沖區指針*/
static?char?ntab1[100][10];??/*變量名表:共100項,每項長度為10*/

struct?ntab
???????{
?int?tc;??/*真值*/
?int?fc;??/*假值*/
???????}ntab2[200];??/*在布爾表達式?)?中保存有關布爾變量的真、假值*/
int????label=0;??/*指向?ntab2?的指針*/
struct?rewords
???????{
?char?sp[10];
?int??sy;
???????};???/*匹配表的結構,用來與輸入緩沖區中的單詞進行匹配*/

struct?rewords?rewords[8]=
??????{{“if“syl_if}
???????{“else“syl_else}
???????{“while“syl_while}
???????{“{“syl_begin}
???????{“}“syl_end}
???????{“&&“op_and}
???????{“||“op_or}
???????{“!“op_not}};??/*匹配表初始化,大小為8*/

struct?aa{
?int?syl;??/*存放名字*/
?int?pos;??/*存放名字所對應的地址*/
???????}buf[100]??/*詞法分析結果緩沖區*/
???????n??/*讀取二元式的當前字符*/
???????n1??/*當前表達式中的字符*/
???????E??/*非終結符*/
???????sstack[100]???/*算術或布爾表達式加工處理使用的符號棧*/
???????ibuf[100]??/*算術或布爾表達式使用的緩沖區*/
???????stack[1000];??/*語法分析加工處理使用的符號棧*/
struct?aa?oth;??/*四元式中空白位置*/
struct?fourexp
???????{
?char?op[10];
?struct?aa?arg1;
?struct?aa?arg2;
?int????result;
???????}fexp[200];?/*四元式的結構定義*/
int????ssp=0;??/*指向sstack棧指針*/
struct?aa?*pbuf=buf;??/*指向詞法分析緩沖區的指針*/
int????nlength=0;??/*詞法分析中記錄單詞的長度*/
int????tt1=0;??/*變量名表指針*/
FILE???*cfile;??/*源程序文件,~為結束符*/
int????lnum=0;??/*源程序行數記數*/
int????sign=0;??/*sign=0為賦值語句;sign=1?為while語句;sign=3為if語句*/
int????newt=0;??/*臨時變量計數器*/
int????nxq=100;??/*?nxq?總是指向下一個將要形成的四元式地址,每次執行gen()時,地址自動增1*/
int????lr;??/*掃描LR分析表1過程中保存的當前狀態值*/
int????lr1;??/*掃描LR分析表2或表3所保存的當前狀態值*/
int????sp=0;??/*查找LR分析表時狀態棧的棧頂指針*/
int????stack1[100];??/*狀態棧1定義*/
int????sp1=0;??/*狀態棧1的棧頂指針*/
int????num=0;??/*算術或布爾表達式緩沖區指針*/
struct?ll
???????{
?int?nxq1;??/*記錄下一條四元式的地址*/
?int?tc1;??/*真值鏈*/
?int?fc1;??/*假值鏈*/
???????}labelmark[10];??/*記錄語句嵌套層次的數組,即記錄嵌套中每層的布爾表達式e的首地址*/
int????labeltemp[10];??/*記錄語句嵌套層次的數組,即記錄每一層else之前的四元式地址*/
int????pointmark=-1;??/*labelmark數組指針*/
int????pointtemp=-1;??/*labeltemp數組指針*/
int????g=0;
//程序語句的LR分析表
static?int?action[20][11]=
/*?0?*/{{???2?-1??3??4?-1??5?-1?-1?-1??1?-1}
/*?1?*/?{??-1?-1?-1?-1?-1?-1?-1?-1ACC?-1?-1}
/*?2?*/?{??-1?-1?-1?-1?-1?-1?-1??6?-1?-1?-1}
/*?3?*/?{??-1?-1?-1?-1?-1?-1?-1??7?-1?-1

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????46428??2012-06-15?00:07??編譯器\Debug\longyueping.obj

?????文件??????33792??2012-06-15?00:07??編譯器\Debug\vc60.idb

?????文件??????53248??2012-06-13?22:21??編譯器\Debug\vc60.pdb

?????文件?????196672??2012-06-15?00:07??編譯器\Debug\編譯器.exe

?????文件?????200508??2012-06-15?00:07??編譯器\Debug\編譯器.ilk

?????文件?????227148??2012-06-13?22:21??編譯器\Debug\編譯器.pch

?????文件?????476160??2012-06-13?22:21??編譯器\Debug\編譯器.pdb

?????文件?????????54??2012-06-07?11:06??編譯器\long.txt

?????文件??????20895??2012-06-07?11:06??編譯器\longyueping.cpp

?????文件?????????83??2004-07-07?12:08??編譯器\lyp.txt

?????文件??????67584??2012-06-13?21:59??編譯器\編譯原理作業上機報告.wps

?????文件???????4289??2012-05-27?21:50??編譯器\編譯器.dsp

?????文件????????520??2012-05-27?21:45??編譯器\編譯器.dsw

?????文件??????54784??2012-06-15?00:08??編譯器\編譯器.opt

?????文件????????858??2012-06-15?00:07??編譯器\編譯器.plg

?????目錄??????????0??2012-06-13?22:21??編譯器\Debug

?????目錄??????????0??2012-06-15?00:08??編譯器

?????文件??????50176??2012-06-15?00:08??編譯器\編譯器.ncb

?????文件??????????0??2012-06-07?11:28??編譯器\Debug\longyueping.sbr

?????文件??????58368??2012-06-07?11:28??編譯器\Debug\編譯器.bsc

-----------?---------??----------?-----??----

??????????????1491567????????????????????20


評論

共有 條評論