proc.h

来自「简单的编译词法分析 in c」· C头文件 代码 · 共 65 行

H
65
字号
/*  proc.h */#define STKSIZ 100char opstk[STKSIZ];int opsp = 0;#define PUSH(op) (opstk[opsp++] = op)#define POP() (opstk[--opsp])#define EMPTY() (opsp == 0)#define PEEK() (!EMPTY() && opstk[opsp-1])#define MAXLEN 200char expr[MAXLEN];int elen = 0;#define EMIT(ch) (expr[elen++] = ch)void procsym(){     char ch;     switch (sym) {     case '(':	  PUSH('(');	  break;     case ')':	  while ((ch = POP()) != '(')	       EMIT(ch);	  break;     case '|':	  if (PEEK() == '*' || PEEK() == '.')	       EMIT('|');	  else PUSH('|');	  break;     case '*':	  if (EMPTY()) EMIT('*');	  else PUSH('*');	  break;     default:	  EMIT(sym);	  break;     }}void mkdot(){     if (PEEK() == '*')	  EMIT('.');     else PUSH('.');}void eflush(){     while ( !EMPTY() ) {	  EMIT(POP());     }}#undef STKSIZ#undef PUSH#undef POP#undef EMPTY#undef PEEK#undef MAXLEN#undef EMIT

⌨️ 快捷键说明

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