• 大小: 436KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-28
  • 语言: 其他
  • 标签: ba  

资源简介

河北工业大学2015级学长倾情推荐,完全是学长手动编程,未借鉴网络上任何代码,绝对能帮你实验获得好成绩。

资源截图

代码片段和文件信息

# include 
# include 
# include 
# include 


# define LB 0//(
# define RB 1//)
# define PL 2//+
# define MI 3//-
# define MU 4//*
# define DI 5// /
# define II 6
# define WE 7//#
# define e 8
# define t 9
# define f 10

# define BEGIN 11
# define END 12
# define IF 13
# define THEN 14
# define ELSE 15
# define WHILE 16
# define DO 17

# define ID 18
# define FCON 19
# define LT 20
# define LE 21
# define EQ 22
# define NE 23
# define GT 24
# define GE 25
# define PU 26
# define PLU 27
# define MIN 28
# define MUL 29
# define DIV 30
# define IS 31

#define idlen 20//此编译程序允许标识符的最大长度
#define MAXLENGTH 10;//将最大长度设置为10



#define MAX_KEY_NUMBER 20  //此编译程序允许的最大关键字数量
#define KEY_WORD_END “waiting for your expanding“  
char *KeyWordTable[MAX_KEY_NUMBER]={“begin““end“ “if“ “then“ “else“ “while““do“KEY_WORD_END};//要添加关键字

void analyse();
void push(intstruct type);
void act(int);
int advance(struct type);//函数声明

char TOKEN[idlen];//存储从文档中读取的字符串

char *temp;
int NXTemp = 0;/*整型变量NXTemp指示临时变量的编号*/


struct type{
char prename[idlen];//规约前的name和临时变量的结果
char name;
float num;
}type1type2type11type12;//type1表示经过词法分析后读入的词的类型,若是浮点型,则name有值,type2表示规约出的表达式

struct type a[100];//a是分析栈

int  c[100];//c是状态栈
int k = 0;//分析栈指针

int TopStat;//SLR1分析表的行
int InpSym;//SLR1分析表的列
int ifSpace = 0;//读入的是否是空格、制表等无意义字符
int isRight = 1;//文法正确标志位
int endtext = 0;//文档结束标志位
int signal = 0;//判断输入浮点型数字时是否重复输入小数点的标志位


int lookup (char *token)
{
int n=0;
while (strcmp(KeyWordTable[n] KEY_WORD_END)) //strcmp比较两串是否相同,若相同返回0
{
if (!strcmp(KeyWordTable[n] token)) //比较token所指向的关键字和保留字表中哪个关键字相符
{
return n+11; //根据单词分类码表I,设置正确的关键字类别码,并返回此类别码的值
break;
}
n++;
}
return 0; //单词不是关键字,而是标识符
}

void out(int identifychar *tokenFILE *f2){
switch(identify){
case BEGIN:
fprintf(f2“(begin%s)\n“token);
break;
case END:
fprintf(f2“(end%s)\n“token);
break;
case IF:
fprintf(f2“(if%s)\n“token);
break;
case THEN:
fprintf(f2“(then%s)\n“token);
break;
case ELSE:
fprintf(f2“(else%s)\n“token);
break;
case WHILE:
fprintf(f2“(while%s)\n“token);
break;
case DO:
fprintf(f2“(do%s)\n“token);
break;
case ID:
fprintf(f2“(ID%s)\n“token);
type1.name = ‘i‘;
strcpy(type1.prenametoken);
break;
case FCON:
fprintf(f2“(FCON%s)\n“token);
type1.name = ‘i‘;
type1.num = (float) atoi(token);
strcpy(type1.prenametoken);
break;
case LE:
fprintf(f2“(LE%s)\n“token);
break;
case NE:
fprintf(f2“(NE%s)\n“token);
break;
case LT:
fprintf(f2“(LT%s)\n“token);
break;
case EQ:
fprintf(f2“(EQ%s)\n“token);
break;
case GE:
fprintf(f2“(GE%s)\n“token);
break;
case GT:
fprintf(f2“(GT%s)\n“token);
break;
case PU:
fprintf(f2“(PU %s )\n“token);
break;
case PLU:
fprintf(f2“(PLU %s )\n“token);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-07-10 20:38  河北工业大学编译原理实验代码及实验报告\
     目录           0  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\
     文件       12232  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\byyl 1+2+3.cpp
     文件        4276  2017-12-24 21:29  河北工业大学编译原理实验代码及实验报告\byyl 153123\byyl.dsp
     文件         547  2017-12-24 21:29  河北工业大学编译原理实验代码及实验报告\byyl 153123\byyl.dsw
     文件       33792  2017-12-24 21:34  河北工业大学编译原理实验代码及实验报告\byyl 153123\byyl.ncb
     文件        1324  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\byyl.plg
     目录           0  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\
     文件       32929  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\byyl 1+2+3.obj
     文件      213057  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\byyl.exe
     文件      224696  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\byyl.ilk
     文件      239144  2017-12-24 21:29  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\byyl.pch
     文件      500736  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\byyl.pdb
     文件       33792  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\vc60.idb
     文件       53248  2017-12-24 21:32  河北工业大学编译原理实验代码及实验报告\byyl 153123\Debug\vc60.pdb
     文件       11924  2017-12-24 21:42  河北工业大学编译原理实验代码及实验报告\使用说明.docx
     文件      177963  2019-07-10 20:42  河北工业大学编译原理实验代码及实验报告\实验报告.docx

评论

共有 条评论