From 24042b3f88dbe3178508520001a5a96e31c6bb13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?b=CA=B0edoh=E2=82=82=20sw=C3=A9?= Date: Mon, 10 Jun 2024 20:24:57 +0500 Subject: [PATCH] Move some stuff around --- src/process.c | 55 ++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/src/process.c b/src/process.c index 993e815..a548afe 100644 --- a/src/process.c +++ b/src/process.c @@ -5,32 +5,40 @@ #include "syntax.h" #include "process.h" -bool replace(tSyntaxElement* tree, tProcessingData* pdata) { +bool replace(tSyntaxElement* tree, tProcessingData* pd) { + if (strcmp(tree->content.string, pd->data.replace.replacethis) == 0) { + + free(tree->content.none); + + tSyntaxElement* clone = se_clone_no_next(pd->data.replace.replacewiththis, tree); + tree->content = clone->content; + tree->type = clone->type; + + free(clone); + + return true; + } else + return false; +} + +void process_mod(tSyntaxElement* tree, tProcessingData* pdata) { tProcessingData* pd = pdata; - bool didreplace = false; - while (1) { if (pd->data.replace.replacethis == NULL) break; - if (tree->type == TOKEN) - - if (strcmp(tree->content.string, pd->data.replace.replacethis) == 0) { - - didreplace = true; - - free(tree->content.none); - - tSyntaxElement* clone = se_clone_no_next(pd->data.replace.replacewiththis, tree); - tree->content = clone->content; - tree->type = clone->type; - - free(clone); - + if (tree->type == TOKEN) { + switch (pd->type) { + case REPLACE: + replace(tree,pd); + break; + case FUNCTION: + break; } + } if (pd->prev != NULL) pd = pd->prev; @@ -39,8 +47,6 @@ bool replace(tSyntaxElement* tree, tProcessingData* pdata) { } - return didreplace; - } bool process_find(tSyntaxElement* tree, tProcessingData** p_pdata) { @@ -144,16 +150,7 @@ void process(tSyntaxElement* tree, tProcessingData* pdata) { if (se_istraversable(tree)) process(tree->content.syntax, pd); - switch (pd->type) { - - case REPLACE: - replace(tree, pd); - break; - - case FUNCTION: // TODO - break; - - } + process_mod(tree, pd); }