From 7d2348ece9b72cecd4d5417a4e39ee705c349e0a Mon Sep 17 00:00:00 2001 From: Ákos Kőrösi Date: Thu, 21 May 2026 19:11:09 +0200 Subject: start building for dollar expansions --- src/lexparse.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/lexparse.c') diff --git a/src/lexparse.c b/src/lexparse.c index 3d48cfe..4ef228c 100644 --- a/src/lexparse.c +++ b/src/lexparse.c @@ -1,4 +1,5 @@ #include +#include #include "syntax.h" #include "../src/utils.h" @@ -38,6 +39,31 @@ MaybeToken consolidate_buffer(LexingBuffer* buf) { } +static MaybeChunk handle_dollar_expansion(char* line, size_t* pos, QuotationMode qmode) { + (*pos)++; + + if (line[*pos] == '(') { + // TODO + exit(66); + } else if (line[*pos] == '_' || isalnum(line[*pos])){ + String buf = make_String(256); + while (line[*pos] == '_' || isalnum(line[*pos])) { + push_to_String(&buf, line[(*pos)++]); + } + return (MaybeChunk){ + .some = true, + .value = (Chunk){ + .qmode = qmode, + .kind = CHUNK_VAR, + .as.varname = inner(&buf) + } + }; + } else { + return (MaybeChunk){.some = false}; + } +} + + static Chunk collect_un_q_literal(char* line, size_t* pos) { String buf = make_String(256); size_t i; -- cgit v1.2.3