From 202f4f3a9b7818359d89ef2583618b397e1824b4 Mon Sep 17 00:00:00 2001 From: Ákos Kőrösi Date: Thu, 21 May 2026 14:13:22 +0200 Subject: start setting up proc sub --- src/preproc.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/preproc.c') 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}; } -- cgit v1.2.3