diff options
| author | Ákos Kőrösi <korakos99@gmail.com> | 2026-05-21 14:13:22 +0200 |
|---|---|---|
| committer | Ákos Kőrösi <korakos99@gmail.com> | 2026-05-21 14:13:22 +0200 |
| commit | 202f4f3a9b7818359d89ef2583618b397e1824b4 (patch) | |
| tree | fae26d260720f0d67187dc59d8ff34f2b73f54cb /src/preproc.c | |
| parent | fc27548c447ed9bcd07493983431e0a6e72c7cef (diff) | |
start setting up proc sub
Diffstat (limited to 'src/preproc.c')
| -rw-r--r-- | src/preproc.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/preproc.c b/src/preproc.c index 63e618f..d64f4c3 100644 --- a/src/preproc.c +++ b/src/preproc.c @@ -80,6 +80,7 @@ Pipeline* process_token_sequence(TokenVec tokens, PipelineVec* pl_pool) { ExpandedToken curr_tok = *get_from_ExpandedTokenVec(&exp_tokens, i); ExpandedToken next_tok; Redirect rd; + Pipeline* sub_pl; switch (curr_tok.kind) { case TOK_WORD: push_to_ArgVec(&curr_cmd.args, (Arg){.kind = ARG_LIT, .as.lit_str = curr_tok.as.word}); @@ -118,8 +119,14 @@ Pipeline* process_token_sequence(TokenVec tokens, PipelineVec* pl_pool) { exit(63); } break; - default: - exit(62); + case SPEC_SUB_IN: + sub_pl = process_token_sequence(*(TokenVec*)curr_tok.as.spec.as.proc_sub_region, pl_pool); + push_to_ArgVec(&curr_cmd.args, (Arg){.kind = ARG_PS_IN, .as.sub_pipeline = sub_pl}); + break; + case SPEC_SUB_OUT: + sub_pl = process_token_sequence(*(TokenVec*)curr_tok.as.spec.as.proc_sub_region, pl_pool); + push_to_ArgVec(&curr_cmd.args, (Arg){.kind = ARG_PS_OUT, .as.sub_pipeline = sub_pl}); + break; } } } @@ -129,7 +136,6 @@ Pipeline* process_token_sequence(TokenVec tokens, PipelineVec* pl_pool) { PipelineTree process_ast(Ast ast) { PipelineVec pls = make_PipelineVec(256); - TokenVec root_toks = *ast.root; - Pipeline* root_pl = process_token_sequence(root_toks, &pls); + Pipeline* root_pl = process_token_sequence(*ast.root, &pls); return (PipelineTree){.pl_pool = pls, root_pl}; } |
