diff options
Diffstat (limited to 'parse.c')
| -rw-r--r-- | parse.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1,4 +1,5 @@ #include <stdlib.h> +#include <stdio.h> #include "lex.h" #include "typeutils.h" @@ -29,7 +30,7 @@ Command parse_command(TokStream* toks) { RedirectVec redirects = make_RedirectVec(256); for ( Token curr_tok; - (curr_tok = toks->ptr[toks->pos], !(curr_tok.kind == TOK_SPECIAL && (curr_tok.as.spec == PIPE && curr_tok.as.spec == EOL))); + (curr_tok = toks->ptr[toks->pos], !(curr_tok.kind == TOK_SPECIAL && (curr_tok.as.spec == PIPE || curr_tok.as.spec == EOL))); toks->pos++ ) { switch (curr_tok.kind) { @@ -73,5 +74,6 @@ Pipeline parse_tokstream(TokenVec toks) { Command cmd = parse_command(&tokstream); Connector conn = parse_connector(&tokstream); push_to_Pipeline(&result, (PipelineElement){.cmd = cmd, .conn = conn}); + if (conn == CONN_EOL) break; } } |
