3、FA简化,DFA的状态转化为相应的子程序,最后得到词法分析器 4.C语言的基本语法。 三、实验要求 1、该个词法分析器要求至少能够识别以下几类单词: 关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; 标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter
18、如不可识别的符号、错误的词法等。四、实验结果(程序)及分析 #include #include#include #define N 100 typedef struct { char name[30]; int code; int addr; }token;//存储刚从文件中读取的字符typedef struct { char name[30]; int code; }Keyword; typedef struct { char name[30]; int co
19、de; int addr;}symbol; Keyword key[6]={{"else",1},{"if",2},{"int",3},{"return",4},{"void",5},{"where",6}}; char ch;//接受字符 FILE *source;//源文件 FILE *keytxt;//关键字输出文件 FILE *badgetxt;//标识符输出文件 FILE *othertxt;//其他单词输出文件 FILE *number; int error_count;//错误的个数 int addr_count;//标
20、识符表的指针 int lineof;//行号 token current;// 暂时存放读入的字符 token zancun; symbol currentsymbol; symbol symboltable[N];//标识符表void error(int i); void main() { void scan(); error_count=0; 文案大全实用标准文档 addr_count=0; error_count=0; lineof=0; scan();} void scan() { int i=0; v
21、oid iskeyword();//判断关键字void isOthers() //判断其他单词 void output_1();//关键字输出文件 void output_2();//标识符输出文件 v