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

資源簡介

這是用c語言實現的一個簡易編譯器,所編譯的文法是類Pascal語言,也就是Pascal語言的擴充,資源里給出了文法和測試程序和源代碼,測試程序有錯誤的和正確的,正確的是可以正確執行出結果的,錯誤的是會給出錯誤提示

資源截圖

代碼片段和文件信息

#include
#include
#include
#include

#define?nkw?40//保留字數目
#define?nummax?20//數字的最大長度
#define?idmax?40//標識符的最大長度
#define?strmax?200//字符串的最大長度
#define?levmax?3//層的最大數
#define?cmax?900//code數組的最大長度
#define?emax?500//errs數組的最大長度
#define?tmax?900//字符表的最大長度
#define?amax?700//數組表的最大長度
#define?pmax?100//過程表的最大長度
#define?fmax?100//函數表的最大長度
#define?comax?200//常量表的最大長度
#define?smax?2048//數據棧的最大長度

FILE?*in;
FILE?*out;
//層數從0開始,單詞表的前三個分別是int?char?real
int?isskip=1;
int?isend;
//char?ems[20];
int?isarray=0;//判斷類型是不是數組
int?isif=0;//判斷前一個句子是不是if語句
int?isend=0;//標志文件是否結束
int?ismain=1;//如果是第一層函數isman=1否則isman=0;
char?string[81];//保存最近依次讀到的字符串
int?strlen1;//字符串的長度
int?stringx=0;//字符串數組的下標
char?strings[50][100];//字符串數組
char?ch=‘?‘;
int?inum;//保存最近一次讀到的常量(整數?實數?字符)
double?rnum;
int?cnum;
int?lc=0;//
int?ll=0;//
char?line[200];
int?linenum=0;//當前行號
int?cc=0;//單詞數目
int??ex=0cx=0tx=0px=0ax=0cox=0;//表的索引
char?ident[idmax]={0};//最近讀入的標識符,用于登錄符號表
char?progname[10]={0};//過程名
//char?cache[100000];//保存從源文件讀入的所有字符
char?temp[200];//詞法分析當前正要分析的單詞
char?sy[10];//當前讀到的單詞的類別
char?fsy[20]=“初始化“;//合法開始符號
char?*constfsys[5]={“plus““minus““intcon““realcon““charcon“};
char?*typefsys[3]={“ident““arraysy““recordsy“};
char?*blockfsys[5]={“constsy““varsy““procsy““funcsy““beginsy“};
char?*factorfsys[6]={“intcon““realcon““charcon““ident““lparent““notsy“};
char?*statefsys[4]={“beginsy““ifsy““whilesy““forsy“};
char?*stantfsys[5]={“notyp““ints““reals““bools““chars“};
int?display[20];//display[level]指向level層在Procedure表中的位置其實值得是level層分程序名字在procedure中的位置
int?level=0;
int?pc;//指令寄存器
int?t;//是數據棧的索引
int?b;//base
int?h1h2h3;//臨時變量
int?lncntocntblkcntchrcnt;//計數
char?ps[10];
//:?(runfincaschkdivchkinxchkstkchklinchklngchkredchk);
//?fld:?array[1..4]?of?integer;
//display:?array[0..lmax]?of?integer;
int?display0[100];
int?fld[100];//域寬
struct?stack{
int?i;
char?c;
double?r;
int?b;
}s[smax];
char?*word[40]=//保留字表??
{“const““integer““real““char““var““array““of““procedure““function“
“if““then““else““while““do““for““to““by““begin““end““read““write“
“+““-““*““/““<““<=““>““>=““=““<>““.““;““:““““[““]““(““)““:=“};
//“integer““real““char““inttk““realtk““chartk“
char?*key[21]=//關鍵字表
{“integer““real““char““const““var““array““of““procedure““function“
“if““then““else““while““do““for““to““by““begin““end““read““write“};

char?*ksy[21]=//關鍵字類別碼表
{“inttk““realtk““chartk““consttk““vartk““arraytk““oftk““proceduretk““functiontk“
“iftk““thentk““elsetk““whiletk““dotk““fortk““totk““bytk““begintk“
“endtk““readtk““writetk“};
char?*typekey[45]=//類別碼表
{“consttk““inttk““realtk““chartk““vartk““arraytk““oftk““proceduretk““functiontk“
“iftk““thentk““elsetk““whiletk““dotk““fortk““totk““bytk““begintk““endtk“
“readtk““writetk““plus““minu““mult““div““LSS“

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

?????文件??????17566??2013-11-06?20:37??自制編譯器\文法.docx

?????文件??????69173??2014-01-05?09:19??自制編譯器\源代碼\compile.c

?????文件???????3411??2014-01-05?10:39??自制編譯器\源代碼\compile.dsp

?????文件????????539??2014-01-05?11:07??自制編譯器\源代碼\compile.dsw

?????文件?????107520??2014-01-05?11:07??自制編譯器\源代碼\compile.ncb

?????文件??????48640??2014-01-05?11:07??自制編譯器\源代碼\compile.opt

?????文件????????759??2014-01-05?10:39??自制編譯器\源代碼\compile.plg

?????文件?????266356??2014-01-05?10:39??自制編譯器\源代碼\Debug\compile.exe

?????文件?????259976??2014-01-05?10:39??自制編譯器\源代碼\Debug\compile.ilk

?????文件?????156441??2014-01-05?10:39??自制編譯器\源代碼\Debug\compile.obj

?????文件?????467968??2014-01-05?10:39??自制編譯器\源代碼\Debug\compile.pdb

?????文件??????41984??2014-01-05?10:39??自制編譯器\源代碼\Debug\vc60.idb

?????文件??????53248??2014-01-05?10:39??自制編譯器\源代碼\Debug\vc60.pdb

?????文件???????1207??2014-01-03?11:22??自制編譯器\源代碼\測試程序\err1.txt

?????文件???????1211??2014-01-03?11:45??自制編譯器\源代碼\測試程序\err11.txt

?????文件???????1077??2014-01-04?09:13??自制編譯器\源代碼\測試程序\err2.txt

?????文件???????1092??2014-01-04?09:12??自制編譯器\源代碼\測試程序\err22.txt

?????文件???????2376??2014-01-04?09:55??自制編譯器\源代碼\測試程序\err3.txt

?????文件???????2375??2014-01-04?10:10??自制編譯器\源代碼\測試程序\err33.txt

?????文件???????1036??2014-01-04?10:41??自制編譯器\源代碼\測試程序\err4.txt

?????文件???????1047??2014-01-04?11:07??自制編譯器\源代碼\測試程序\err44.txt

?????文件????????818??2014-01-04?12:02??自制編譯器\源代碼\測試程序\err5.txt

?????文件????????815??2014-01-04?12:55??自制編譯器\源代碼\測試程序\err55.txt

?????文件???????1207??2014-01-04?10:30??自制編譯器\源代碼\測試程序\test1.txt

?????文件???????1084??2014-01-03?14:52??自制編譯器\源代碼\測試程序\test2.txt

?????文件???????2382??2014-01-03?16:56??自制編譯器\源代碼\測試程序\test3.txt

?????文件???????1046??2014-01-03?21:06??自制編譯器\源代碼\測試程序\test4.txt

?????文件????????799??2014-01-04?11:49??自制編譯器\源代碼\測試程序\test5.txt

?????目錄??????????0??2014-07-18?23:16??自制編譯器\源代碼\Debug

?????目錄??????????0??2014-07-18?23:16??自制編譯器\源代碼\測試程序

............此處省略5個文件信息

評論

共有 條評論