递归前.y.svn-base
来自「大学操作系统课程实验:Linux下实现的一个shell解释器。能够比较完整完好地」· SVN-BASE 代码 · 共 87 行
SVN-BASE
87 行
{%
#include global.h
%}
%token BG FG CD HISTORY EXIT PARA SRC;
%%
command :CDcommand
|BGcommand
|FGcommand
|HISTORYcommand
|EXITcommand
;
CDcommand :CD
{
cStr.cmd="cd";
}
|CD SRCstring
{
cStr.cmd="cd";
cStr.src=$2;
}
;
BGcommand :BG
{
cStr.cmd="bg";
}
|BG SRCstring
{
cStr.cmd="bg";
cStr.src=$2;
}
;
FGcommand :FG
{
cStr.cmd="fg";
}
|FG SRCstring
{
cStr.cmd="fg";
cStr.src=$2;
}
;
HISTORYcommand :HISTORY
{
cStr.cmd="history";
}
|HISTORY PARAstring
{
cStr.cmd="history";
cStr.para=$2;
}
|HISTORY SRCstring
{
cStr.cmd="history";
cStr.src=$2;
}
|HISTORY PARAstring SRCstring
{
cStr.cmd="history";
cStr.para=$2;
cStr.src=$3;
}
;
PARAstring :PARA
{
$$=tokenstring;
}
;
SRCstring :SRC
{
$$=tokenstring;
}
;
%%
int yyerror()
{
printf("");//有错
return 0;
}
static int yylex(void){
return getToken();
}
void parse(void){
yyparse();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?