diff options
Diffstat (limited to 'src/expand.h')
| -rw-r--r-- | src/expand.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/expand.h b/src/expand.h new file mode 100644 index 0000000..b353f39 --- /dev/null +++ b/src/expand.h @@ -0,0 +1,31 @@ +# pragma once + +#include "preproc.h" +#include "utils.h" + +typedef enum { + SLOT_STR, + SLOT_SPEC, + SLOT_PROC_IN, + SLOT_PROC_OUT, +} SlotKind; + +typedef struct { + SlotKind kind; + union { + char* str; + SpecialToken spec; + Region* proc_reg; + } as; +} Slot; + +DECLARE_VEC(Slot, SlotVec) + +typedef struct { + SlotVec cmd_slots; + Connector conn; +} ExpandedPipelineElement; + +DECLARE_VEC(ExpandedPipelineElement, ExpandedPipeline) + +ExpandedPipeline expand_pipeline(Pipeline* pl, ShellState* shstate); |
