summaryrefslogtreecommitdiff
path: root/lex.c
diff options
context:
space:
mode:
Diffstat (limited to 'lex.c')
-rw-r--r--lex.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lex.c b/lex.c
index 3689432..8ffb2a8 100644
--- a/lex.c
+++ b/lex.c
@@ -214,6 +214,11 @@ TokenVec lex_level(RawLine* line, char until, RegionVec* reg_arena) {
case '\"':
lex_double_quoted_section(line, &state.word_germ, reg_arena);
break;
+ case '|':
+ line->pos++;
+ close_word_and_lit_germs(&state);
+ push_to_TokenVec(&state.tokens, (Token){.kind = TOK_SPECIAL, .as.spec = PIPE});
+ break;
case '$':
line->pos++;
MaybeChunk mchunk = lex_expansion_chunk(line, reg_arena, UN_Q);
@@ -256,9 +261,8 @@ TokenVec lex_level(RawLine* line, char until, RegionVec* reg_arena) {
line->pos++;
push_to_TokenVec(&state.tokens, (Token){.kind = TOK_PROCSUB_IN, .as.procsub_region = reg_ptr});
- break;
} else {
- push_to_TokenVec(&state.tokens, (Token){.kind = TOK_SPECIAL, .as.spec = READ_REDIR});
+ push_to_TokenVec(&state.tokens, (Token){.kind = TOK_SPECIAL, .as.spec = READ_REDIR});
}
break;
default: