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 + -
显示快捷键?