summaryrefslogtreecommitdiff
path: root/preproc.h
diff options
context:
space:
mode:
authorÁkos Kőrösi <korakos99@gmail.com>2026-05-19 21:13:19 +0200
committerÁkos Kőrösi <korakos99@gmail.com>2026-05-19 21:13:19 +0200
commit2bdbf387261285d07e4b62d1e23c9e43efb14604 (patch)
tree92b81d300f3c17d072f2a30362dafd815e57a758 /preproc.h
parent6a391a1180766ac5717c40efa70d46cacca83f91 (diff)
restructure dir, create makefile
Diffstat (limited to 'preproc.h')
-rw-r--r--preproc.h116
1 files changed, 0 insertions, 116 deletions
diff --git a/preproc.h b/preproc.h
deleted file mode 100644
index 7907f9d..0000000
--- a/preproc.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#pragma once
-
-#include "utils.h"
-
-typedef struct Region Region;
-
-
-// Lexing stage
-typedef enum {
- UN_Q,
- SINGLE_Q,
- DOUBLE_Q,
-} QuotationMode;
-
-typedef enum {
- LITERAL,
- REGION_EXP,
- VAR_EXP, // TODO: Later include other exps
-} ChunkKind;
-
-typedef struct {
- ChunkKind kind;
- QuotationMode qmode;
- union {
- char* literal_str;
- Region* reg_ptr;
- char* varname;
- } as;
-} Chunk;
-DECLARE_MAYBE(Chunk, MaybeChunk);
-DECLARE_VEC(Chunk*, Word)
-
-typedef enum {
- TOK_WORD,
- TOK_SPECIAL,
- TOK_PROCSUB_IN,
- TOK_PROCSUB_OUT,
-} TokenKind;
-
-typedef enum {
- PIPE,
- WRITE_REDIR_TRUNC,
- WRITE_REDIR_APPEND,
- READ_REDIR,
- EOL,
-} SpecialToken;
-DECLARE_MAYBE(SpecialToken, MaybeSpecialToken)
-
-typedef struct {
- TokenKind kind;
-
- union {
- Word word;
- SpecialToken spec;
- Region* procsub_region;
- } as;
-} Token;
-
-
-DECLARE_VEC(Token*, TokenPtrVec)
-
-
-typedef enum {
- CMDS,
- ARITHM,
-} RegionMode;
-
-struct Region {
- RegionMode mode;
- TokenPtrVec tokens;
-};
-DECLARE_VEC(Region, RegionVec)
-
-
-
-DECLARE_VEC(Chunk, ChunkVec)
-DECLARE_VEC(Token, TokenVec)
-
-
-
-// Lexing
-
-typedef struct {
- RegionVec regions;
- TokenVec tokens;
- ChunkVec chunks;
-} PreprocArena;
-
-
-TokenPtrVec lex(char* input, PreprocArena* arena);
-
-
-// Parsing
-
-typedef enum {
- CONN_PIPE,
- CONN_EOL,
- // TODO: add the |& thingy
-} Connector;
-
-DECLARE_MAYBE(Connector, MaybeConnector)
-
-typedef struct {
- TokenVec cmd_toks;
- Connector conn;
-} PipelineElement;
-
-DECLARE_VEC(PipelineElement, Pipeline)
-
-Pipeline parse_tokstream(Token* tokstream);
-
-
-
-
-
-