示例#1
0
文件: sh.c 项目: JianxinMa/v9.js
struct cmd* parseline(char** ps, char* es)
{
    struct cmd* cmd = parsepipe(ps, es);
    while (peek(ps, es, "&")) {
        gettoken(ps, es, 0, 0);
        cmd = backcmd(cmd);
    }
    if (peek(ps, es, ";")) {
        gettoken(ps, es, 0, 0);
        cmd = listcmd(cmd, parseline(ps, es));
    }
    return cmd;
}
示例#2
0
文件: sh.c 项目: whyzidane/6.828_hw
struct cmd*
parseline(char **ps, char *es)
{
  struct cmd *cmd;
  
  cmd = parseexec(ps, es);
  if(peek(ps, es, "|")){
    gettoken(ps, es, 0, 0);
    cmd = pipecmd(cmd, parseline(ps, es));
  } else if (peek(ps, es, ";")){
    gettoken(ps, es, 0, 0);
    cmd = listcmd(cmd, parseline(ps, es)); 
  }
  return cmd;
}