lex.c

来自「一个shell程序可以实现管道」· C语言 代码 · 共 38 行

C
38
字号
%{
int _numargs = 10;
char *_args[10];
int _argcount = 0;
%}
QUOTE \"[^\"]*\"
WORD	[a-zA-Z0-9\/\.-]+
SPECIAL	[()><|&;*]

%%
	_argcount = 0;
	_args[0] = NULL;

{QUOTE}|{WORD}|{SPECIAL} {
	  if(_argcount < _numargs-1) {
	    _args[_argcount++] = (char *)strdup(yytext);
	    _args[_argcount] = NULL;
	  }
	}

\n	return (int)_args;

[ \t]+

.

%%

char **getline() {
  return (char **)yylex();
}int yywrap(){	return 0;}

⌨️ 快捷键说明

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