递归前.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 + -
显示快捷键?