网站大量收购独家精品文档,联系QQ:2885784924

编译原理词法分析器代码.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理词法分析器代码

#include stdio.h #include string.h #include stdlib.h #include ctype.h #include conio.h #define KEYWORD_LEN 32 //保留字个数 #define STR_MAX_LEN 300 //标识符最大长度 #define PRO_MAX_LEN 20480 //源程序最大长度 #define STB_MAX_LEN 1000 //符号表最大容量 #define CTB_MAX_LEN 1000 //常数表最大容量 #define ERROR 0 //错误 #define ID (KEYWORD_LEN+1) //标识符 #define CONST (KEYWORD_LEN+2) //常量 #define OPERAT (KEYWORD_LEN+3) //运算符 #define DIVIDE (KEYWORD_LEN+4) //界符 int errorLine=0; char proBuffer[PRO_MAX_LEN] = ; //存储程序代码的全局缓冲区 char ch; //读出来的当前字符 char wordget[STR_MAX_LEN]; //标识符 或 常量 int point = 0; //源程序当前位置指针 char signTab[STB_MAX_LEN][STR_MAX_LEN]; //符号表 int pointSTB = 0; //符号表指针 char constTab[CTB_MAX_LEN][STR_MAX_LEN]; //常量表 int pointCTB = 0; //常数表指针 char kwTab[KEYWORD_LEN][10]={ //保留字表 C语言一共有32个保留字[关键字] auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while}; char errorTab[][50]={ //错误代码表 /*0*/未知错误, /*1*/非法的字符, /*2*/不正确的字符常量表达, /*3*/不正确的字符串表达, /*4*/不正确的数字表达, /*5*/注释丢失*/}; typedef struct signDuality { int kind; int value; }*pDualistic, Dualistic; void pretreatment(); //预处理 void ProcError(int id); //错误 bool GetChar(); //获得一个字符???包括结束标记 bool GetBC(); //获得一个非空白字符 void Concat(char *str); //将ch连接到str后 int Reserve(char *str); //对str字符串查找保留字表 若是一个保

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档