📄 ch2-05.l
字号:
%{#undef input#undef unputint input(void);void unput(int ch);unsigned verbose;char *progName;%}%%-h |"-?" |-help { printf("usage is: %s [-help | -h | -? ] [-verbose | -v]" " [(-file| -f) filename]\n", progName); }-v |-verbose { printf("verbose mode is on\n"); verbose = 1; }%%char **targv; /* remembers arguments */char **arglim; /* end of arguments */main(int argc, char **argv){ progName = *argv; targv = argv+1; arglim = argv+argc; yylex();}static unsigned offset = 0;intinput(void){ char c; if (targv >= arglim) return(0); /* EOF */ /* end of argument, move to the next */ if ((c = targv[0][offset++]) != '\0') return(c); targv++; offset = 0; return(' ');}/* simple unput only backs up, doesn't allow you to *//* put back different text */voidunput(int ch){ /* AT&T lex sometimes puts back the EOF ! */ if(ch == 0) return; /* ignore, can't put back EOF */ if (offset) { /* back up in current arg */ offset--; return; } targv--; /* back to previous arg */ offset = strlen(*targv);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -