电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

简单的C编译器(c语言实现)VIP免费

简单的C编译器(c语言实现)_第1页
1/34
简单的C编译器(c语言实现)_第2页
2/34
简单的C编译器(c语言实现)_第3页
3/34
#include #include #include #include #include #include using namespace std; #define NORW 16/*关键字个数为 16*/ #define TXMAX 100 /*符号表长度最大为 100*/ #define NMAX 10 /*数字最多为 14 位*/ #define AL 16 /*标识符最长为 16*/ #define AMAX 2047 /*最大整数为 2047*/ #define LEVMAX 3 /*过程调用最多为 3 层*/ #define CXMAX 200 /*生成的目标代码最多为 200 条*/ #define STACKSIZE 500 /*运行时数据栈元素最多为 500 个*/ char *symbol[36]={"nul","ident","number","plus","minus","times","slash","surplus","oddsym","xorsym"//odd 求奇 slash 除 这里要添 surplus 求余 "eql","neq","lss","leq","gtr","geq","lparen","rparen","comma", "semicolon","becomes","lbracketsym","rbracketsym","ifsym", "whilesym","switchsym","casesym","writesym","readsym", "repeatsym","untilsym","forsym","plusone","minusone", "constsym","intsym","voidsym"}; /*全部单词种类*/ char *word[NORW]={"break","call","case","const","for","if","int","odd","read","repeat","switch","until","void","while","write","xor"};/*关键字*/ //procedure 步骤 这里要添 case lbracket 左括号 rbracket 右括号 /*关键字的类别标记*/ char *wsym[NORW]={"breaksym","callsym","casesym","constsym","forsym","ifsym","intsym","oddsym","readsym","repeatsym","switchsym","untilsym","void","whilesym","writesym","xorsym"}; /*8 条目标代码*/ char *mnemonic[8]={"lit","opr","lod","sto","cal","ini","jmp","jpc"}; char ch; /*当前读入的字符*/ char id[AL]; /*当前读入的单词*/ char sym[15]; /*当前读入单词的类别标记*/ char line[81]; /*当前读入的一行字符*/ char a[AL],fname[AL]; /*读入标识符或关键字时置于a 中,fname 为源程序文件名*/ enum object{constant,integer,project};/*常量、变量、过程*/ enum object kind; enum fct{lit,opr,lod,sto,cal,ini,jmp,jpc};/*目标代码*/ FILE *fa;/*生成的目标代码文件*/ /*文件fa1 存放源程序及编译过程中的错误信息, 文件fa2 存放程序运行时输入和输出的数据*/ FILE *fa1,*fa2; FILE *fin;/*输...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

简单的C编译器(c语言实现)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部