From 0cf6fc7cc6581e8a01e2d475858fec7b352fe4d0 Mon Sep 17 00:00:00 2001 From: Ákos Kőrösi Date: Thu, 21 May 2026 11:53:45 +0200 Subject: redesign token types, pipes don't work now --- redes/syntax.h | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'redes/syntax.h') diff --git a/redes/syntax.h b/redes/syntax.h index c40a3da..0cdb76c 100644 --- a/redes/syntax.h +++ b/redes/syntax.h @@ -69,18 +69,32 @@ DECLARE_VEC(Chunk, Word) typedef enum { TOK_WORD, TOK_SPEC, - TOK_SUB_IN, - TOK_SUB_OUT, } TokenKind; typedef enum { - SPEC_PIPE, - SPEC_REDIR_W_TRUNC, - SPEC_REDIR_W_APPEND, - SPEC_REDIR_R, - SPEC_EOL, + OP_PIPE, + OP_REDIR_W_TRUNC, + OP_REDIR_W_APPEND, + OP_REDIR_R, + OP_EOL, +} OperatorToken; + + +typedef enum { + SPEC_OP, + SPEC_SUB_IN, + SPEC_SUB_OUT, +} SpecialTokenKind; + +typedef struct { + SpecialTokenKind kind; + union { + OperatorToken op; + void* proc_sub_region; + } as; } SpecialToken; + typedef struct Token Token; DECLARE_VEC(Token*, TokenPtrVec) @@ -89,7 +103,6 @@ struct Token { union { Word word; SpecialToken spec; - void* procsub_token_vec; } as; }; -- cgit v1.2.3