From 883f7dad9c3714a5fcae6e79928290902081df9a Mon Sep 17 00:00:00 2001 From: attilavs2 Date: Wed, 5 Mar 2025 18:03:31 +0100 Subject: [PATCH] a --- src/parser.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/parser.c b/src/parser.c index 196cba2..f2ac433 100644 --- a/src/parser.c +++ b/src/parser.c @@ -22,13 +22,25 @@ i32 parenth_stack[256]; i32 parenth_d; // Does the final transformation -> recursion end -int parse_statement_final(StatementStack *stack, Statement *parent, char *str){ +int parse_statement_final(ASTStack *stack){ } // Recursively extracts statements -int parse_statement(StatementStack *stack, Statement *parent, char *str){ - +int parse_statement(ASTStack *stack){ + i32 curr = stack->curr_statement; + char **curr_pos = &stack->pos_stack[curr]; + char ch = ' '; + do { + switch(ch){ + case '(': + parenth_stack[parenth_d++] = 1; + break; + default: + break; + } + ch = **curr_pos; + } while(ch); } ASTStack *parse(char *text){ @@ -39,8 +51,10 @@ ASTStack *parse(char *text){ } i32 ret = 0; + stack->pos_stack[0] = text; + stack->statements[0] = NULL; do { - ret = parse_statement(stack, NULL, text); + ret = parse_statement(stack); } while(!ret); return stack;