es                267 user/sh.c      gettoken(char **ps, char *es, char **q, char **eq)
es                273 user/sh.c        while(s < es && strchr(whitespace, *s))
es                298 user/sh.c          while(s < es && !strchr(whitespace, *s) && !strchr(symbols, *s))
es                305 user/sh.c        while(s < es && strchr(whitespace, *s))
es                312 user/sh.c      peek(char **ps, char *es, char *toks)
es                317 user/sh.c        while(s < es && strchr(whitespace, *s))
es                331 user/sh.c        char *es;
es                334 user/sh.c        es = s + strlen(s);
es                335 user/sh.c        cmd = parseline(&s, es);
es                336 user/sh.c        peek(&s, es, "");
es                337 user/sh.c        if(s != es){
es                346 user/sh.c      parseline(char **ps, char *es)
es                350 user/sh.c        cmd = parsepipe(ps, es);
es                351 user/sh.c        while(peek(ps, es, "&")){
es                352 user/sh.c          gettoken(ps, es, 0, 0);
es                355 user/sh.c        if(peek(ps, es, ";")){
es                356 user/sh.c          gettoken(ps, es, 0, 0);
es                357 user/sh.c          cmd = listcmd(cmd, parseline(ps, es));
es                363 user/sh.c      parsepipe(char **ps, char *es)
es                367 user/sh.c        cmd = parseexec(ps, es);
es                368 user/sh.c        if(peek(ps, es, "|")){
es                369 user/sh.c          gettoken(ps, es, 0, 0);
es                370 user/sh.c          cmd = pipecmd(cmd, parsepipe(ps, es));
es                376 user/sh.c      parseredirs(struct cmd *cmd, char **ps, char *es)
es                381 user/sh.c        while(peek(ps, es, "<>")){
es                382 user/sh.c          tok = gettoken(ps, es, 0, 0);
es                383 user/sh.c          if(gettoken(ps, es, &q, &eq) != 'a')
es                401 user/sh.c      parseblock(char **ps, char *es)
es                405 user/sh.c        if(!peek(ps, es, "("))
es                407 user/sh.c        gettoken(ps, es, 0, 0);
es                408 user/sh.c        cmd = parseline(ps, es);
es                409 user/sh.c        if(!peek(ps, es, ")"))
es                411 user/sh.c        gettoken(ps, es, 0, 0);
es                412 user/sh.c        cmd = parseredirs(cmd, ps, es);
es                417 user/sh.c      parseexec(char **ps, char *es)
es                424 user/sh.c        if(peek(ps, es, "("))
es                425 user/sh.c          return parseblock(ps, es);
es                431 user/sh.c        ret = parseredirs(ret, ps, es);
es                432 user/sh.c        while(!peek(ps, es, "|)&;")){
es                433 user/sh.c          if((tok=gettoken(ps, es, &q, &eq)) == 0)
es                442 user/sh.c          ret = parseredirs(ret, ps, es);