add operations

This commit is contained in:
2025-06-10 04:41:06 +01:00
parent 1b90438bb9
commit 86c0eabfde
18 changed files with 207 additions and 68 deletions

View File

@@ -39,8 +39,7 @@ ParsedValue *parse_declaration(char *file, DArray *tokens, size_t *index) {
token = darray_get(tokens, *index);
if (token->type == TOKEN_LPAREN) {
declaration->is_function = true;
declaration->parameters = checked_malloc(sizeof(DArray));
darray_init(declaration->parameters, sizeof(char *));
darray_init(&declaration->parameters, sizeof(char *));
(*index)++;
error_if_finished(file, tokens, index);
token = darray_get(tokens, *index);
@@ -62,7 +61,7 @@ ParsedValue *parse_declaration(char *file, DArray *tokens, size_t *index) {
}
char *parameter_name =
strcpy(checked_malloc(strlen(token->value) + 1), token->value);
darray_push(declaration->parameters, &parameter_name);
darray_push(&declaration->parameters, &parameter_name);
(*index)++;
error_if_finished(file, tokens, index);
skip_newlines_and_indents(tokens, index);
@@ -127,7 +126,7 @@ void free_single_declaration(void *ptr) {
ParsedSingleDeclaration *declaration = ptr;
free(declaration->name);
if (declaration->is_function)
darray_free(declaration->parameters, free_string);
darray_free(&declaration->parameters, free_string);
free_parsed(declaration->from);
free(declaration->from);
}

View File

@@ -6,7 +6,7 @@
typedef struct {
char * name;
bool is_function;
DArray * parameters; // string[]
DArray parameters; // string[]
ParsedValue * from;
} ParsedSingleDeclaration;