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

資源簡介

詞法分析主要是根據標識符的定義規則逐個識別字符或者字符串,包括對關鍵字、普通標識符、常數等的識別,分別構建標識符表和數字表,并生成二元式流。    語法分析和語義分析調用詞法分析,然后查找用SLR(1)構造的ACTION表和GOTO表進行移進或歸約,歸約時根據不同的產生式進行不同的語義分析,最終輸出分析過程,并形成符號表、二元式、四元式文件。    本次程序將本次課程所學的詞法分析,語法分析和語義分析結合起來,使我們進一步理解正則表達式,自動機以及語法分析方法。同時加深掌握語法制導翻譯和中間代碼生成,在語法分析的同時進行語義加工并產生出中間代碼的方法。

資源截圖

代碼片段和文件信息

#include“header.h“
#include
#include
#include

#define?alen?100
#define?blen?100
char?ch;
FILE?*in;??//源文件
FILE?*outid;
FILE?*outnum;??
letter?wordbuf;
int?equal;
int?linenum=1;???//錯誤出現的行號
int?error_count;?//錯誤出現的個數
int?id_count;
int?num_count;

letter?word[100];int?w=0;
letter?word1[100];
int?addr=0;
int?flag=0;
char?get1[20];

char?value[10];
char?id_val[10];
char?num_val[10];

char?F_val[10];
char?T_val[10];
char?E_val[10];
char?A_val[10];
char?id1_val[10];


char?*a1[alen]={“int““float““““;““id““#““S““D“};
char?*a2[blen]={“id““=““;““+““*““(““)““num““#““A““E““T““F“};

/*int action1_table[10][8]=
{
34000012
????0000010000
????00650000
????00007000
????00008000
????00000-100
????00009000
????00-2-20000
????00-3-30000
????00-4-40000
};*/
/*int action2_table[17][13]=
{
2000000001000????????????????????
000000001000000
0300000000000
8000070900456
001011000000000
00-3-3120-3000000
00-5-5-50-5000000
80000709001356
00-7-7-70-7000000
????00-8-8-80-8000000
00000000-10000
80000709000146
80000709000015
000110016000000
00-2-2120-2000000
00-4-4-40-4000000
00-6-6-60-6000000
};*/

int action1_table[10][8]=
{
3410210110110112
????10210210110110310000
????1041046510310400
????101101102102710400
????101101102102810400
????101101101101101-100
????101101102102910100
????104104-2-210310400
????104104-3-310310400
????104104-4-410310400
};
int action2_table[17][13]=
{
21011011011011011011011011000????????????????????
1031011011011011031011031000000
10131011011011011011011010000
8101102102102710191010456
10310110111031031011031040000
103101-3-312103-31031010000
103101-5-5-5103-51031010000
81011011031037101910101356
103101-7-7-7103-71031040000
????103101-8-8-8103-81031040000
101101101101101101101101-10000
81011011021027101910100146
81011011021027101910100015
10310110111101103161031010000
103101-2-212103-21031010000
103101-4-4-4103-41031010000
103101-6-6-6103-61031010000
};


//初始化保留字表
void?Scanner(Seqlist_key?&keywordSeqlist_id?&L1Number?&L2)
{
strcpy(keyword.data[1].name“int“);?????keyword.data[1].num=1;?
strcpy(keyword.data[2].name“char“);????keyword.data[2].num=2;
strcpy(keyword.data[3].name“float“);???keyword.data[3].num=3;
strcpy(keyword.data[4].name“void“);????keyword.data[

評論

共有 條評論