⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmm.h

📁 参照清华大学《编译原理》写的cmm语言词法分析程序
💻 H
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef enum {	false,	true} bool;#define norw 8			/* 关键字个数 */#define al 10			/* Token的最大长度 *//* Token的类型 */enum symbol {	nul,			ident,		number,		plus,			minus,	real,			times,		slash,		eql,			neq,				lss,			leq,			gtr,			geq,			lparen,			assign,		lbracket,		rbracket,		lbrace,		rbrace,			rparen,		comma,		semicolon,		period,		constsym,			elsesym,		ifsym,		intsym,		readsym,		realsym,			whilesym,		writesym};#define symnum 32		/* 有多少种Token */char ch;				/* 获取字符的缓冲区,getch使用 */enum symbol sym;		/* 当前的Token的类型 */char id[ al+1 ];			/* 当前的ident,多出的一个字节用于存放0 */char a[al+1];			/* 临时id,多出的一个字节用于存放0 */int num;				/* 当前的number */#define nmax 14		/* number的最大位数 */int cc,ll;				/* ll表示当前行的字符数,cc表示当前字符在当前行的位置 */char line[81];			/* 读取行缓冲区 */char word[norw][al];		/* 保留字 */enum symbol wsym[norw];	/* 保留字对应的Token类型 */enum symbol ssym[256];	/* 单字符的Token类型 */FILE * fin;				/* 输入文件的指针 */FILE * fout;			/* 输出 */char *fname;			/* 输入文件的地址 */char value[al+1];		/* 存储当前Token的值 */float realvalue;			/* 当前小数的值 */float e = 0.1;			/* 处理小数部分的参数 */int linenum;			/* 当前行 */#define getchdo			if(-1==getch()) return -1int getch();void init();int getsym();void printsym(int offset);void printline();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -