return err in translator

This commit is contained in:
2025-07-14 22:22:26 +01:00
parent 0c8d018238
commit 8ea69cce67
18 changed files with 72 additions and 41 deletions

View File

@@ -10,15 +10,19 @@
#include "../literals/literals.h"
ParsedValueReturn parse_return(char *file, DArray *tokens, size_t *index) {
Token *token = darray_get(tokens, *index);
(*index)++;
ParsedValue *parsedValue = checked_malloc(sizeof(ParsedValue));
ParsedReturn *parsedReturn = checked_malloc(sizeof(ParsedReturn));
parsedValue->type = AST_RETURN;
parsedValue->data = parsedReturn;
parsedReturn->line = token->line;
parsedReturn->column = token->column;
parsedReturn->length = token->length;
parsedReturn->value = parse_null();
if (*index >= tokens->size)
return (ParsedValueReturn){no_err, parsedValue};
Token *token = darray_get(tokens, *index);
token = darray_get(tokens, *index);
if (token->type == TOKEN_NEW_LINE)
return (ParsedValueReturn){no_err, parsedValue};
ParsedValueReturn value = parse_token(file, tokens, index, true);

View File

@@ -11,6 +11,9 @@
typedef struct {
ParsedValue * value;
int64_t line;
int64_t column;
int64_t length;
} ParsedReturn;
ParsedValueReturn parse_return(char *file, DArray *tokens, size_t *index);