ps                267 sh.c           gettoken(char **ps, char *es, char **q, char **eq)
ps                272 sh.c             s = *ps;
ps                307 sh.c             *ps = s;
ps                312 sh.c           peek(char **ps, char *es, char *toks)
ps                316 sh.c             s = *ps;
ps                319 sh.c             *ps = s;
ps                346 sh.c           parseline(char **ps, char *es)
ps                350 sh.c             cmd = parsepipe(ps, es);
ps                351 sh.c             while(peek(ps, es, "&")){
ps                352 sh.c               gettoken(ps, es, 0, 0);
ps                355 sh.c             if(peek(ps, es, ";")){
ps                356 sh.c               gettoken(ps, es, 0, 0);
ps                357 sh.c               cmd = listcmd(cmd, parseline(ps, es));
ps                363 sh.c           parsepipe(char **ps, char *es)
ps                367 sh.c             cmd = parseexec(ps, es);
ps                368 sh.c             if(peek(ps, es, "|")){
ps                369 sh.c               gettoken(ps, es, 0, 0);
ps                370 sh.c               cmd = pipecmd(cmd, parsepipe(ps, es));
ps                376 sh.c           parseredirs(struct cmd *cmd, char **ps, char *es)
ps                381 sh.c             while(peek(ps, es, "<>")){
ps                382 sh.c               tok = gettoken(ps, es, 0, 0);
ps                383 sh.c               if(gettoken(ps, es, &q, &eq) != 'a')
ps                401 sh.c           parseblock(char **ps, char *es)
ps                405 sh.c             if(!peek(ps, es, "("))
ps                407 sh.c             gettoken(ps, es, 0, 0);
ps                408 sh.c             cmd = parseline(ps, es);
ps                409 sh.c             if(!peek(ps, es, ")"))
ps                411 sh.c             gettoken(ps, es, 0, 0);
ps                412 sh.c             cmd = parseredirs(cmd, ps, es);
ps                417 sh.c           parseexec(char **ps, char *es)
ps                424 sh.c             if(peek(ps, es, "("))
ps                425 sh.c               return parseblock(ps, es);
ps                431 sh.c             ret = parseredirs(ret, ps, es);
ps                432 sh.c             while(!peek(ps, es, "|)&;")){
ps                433 sh.c               if((tok=gettoken(ps, es, &q, &eq)) == 0)
ps                442 sh.c               ret = parseredirs(ret, ps, es);