• 大小: 0.07M
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


一个简单的C0编译器,附带文法说明和源码

资源截图

代码片段和文件信息

#include
#include“c0.h“
#include“string.h“
void init()
{
int i;
for(i=0;i<=255;i++) 
{
ssym[i]=nul; //ssym:单字符的符号值  
}
err=0;                                           //错误计数器置0 
cc=cx=ll=0;
ch=‘ ‘;
ptx=0;
pdx=0;
cx=0;
ls=1;
ssym[‘+‘]=plus;
ssym[‘-‘]=minus;
ssym[‘*‘]=times;
ssym[‘/‘]=slash;
ssym[‘(‘]=lparen;
ssym[‘=‘]=becomes;
ssym[‘)‘]=rparen;
ssym[‘‘]=comma;
ssym[‘{‘]=lbrace;
ssym[‘}‘]=rbrace;
ssym[‘;‘]=semicolon;
/*设置保留字名字按照字母顺序便于折半查找*/

strcpy(&(word[0][0])“else“);
strcpy(&(word[1][0])“if“);
strcpy(&(word[2][0])“int“);
strcpy(&(word[3][0])“main“);
strcpy(&(word[4][0])“printf“);
strcpy(&(word[5][0])“return“);
strcpy(&(word[6][0])“scanf“);
strcpy(&(word[7][0])“void“);
strcpy(&(word[8][0])“while“);
/*设置保留字符号*/
wsym[0]=elsesym;
wsym[1]=ifsym;
wsym[2]=intsym;
wsym[3]=mainsym;
wsym[4]=printfsym;
wsym[5]=returnsym;
wsym[6]=scanfsym;
wsym[7]=voidsym;
wsym[8]=whilesym;

/*设置

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-01-04 22:57  c0程序\
     文件      116736  2015-01-04 22:55  c0程序\C0编译器实验报告.doc
     目录           0  2015-01-04 22:57  c0程序\测试实例\
     文件         156  2014-12-23 16:14  c0程序\测试实例\1.txt
     文件          90  2014-12-22 21:29  c0程序\测试实例\2.txt
     文件          84  2014-12-22 21:53  c0程序\测试实例\3.txt
     文件         102  2014-12-23 17:07  c0程序\测试实例\4.txt
     文件          60  2014-12-23 15:14  c0程序\测试实例\5.txt
     文件          34  2014-12-23 15:47  c0程序\测试实例\6.txt
     文件          68  2014-12-29 19:25  c0程序\测试实例\7.txt
     目录           0  2015-01-04 22:56  c0程序\程序代码\
     文件        2868  2014-12-29 19:22  c0程序\程序代码\c0.h
     文件       14905  2014-12-30 15:12  c0程序\程序代码\c0go.c
     文件         285  2014-12-29 19:30  c0程序\错误描述.txt
     文件       88622  2014-11-22 21:18  实验报告.doc

评论

共有 条评论