Files
quip/backend/ast.c
2026-03-21 19:03:05 -04:00

39 lines
741 B
C

/*
* Copyright (c) 2026, Mirocom Laboratories
* Provided under the BSD-3 clause
*
* Abstract:
* This file implements abstract syntaxt tree creation
* logic.
* Author:
* Ian M. Moffett <ian@mirocom.org>
*/
#include <stddef.h>
#include <errno.h>
#include <stdlib.h>
#include "backend/ast.h"
int
ast_node_alloc(struct quip_state *state, ast_type_t type, struct ast_node **res)
{
struct ast_node *node;
if (res == NULL) {
errno = -EINVAL;
return -1;
}
node = ptrbox_malloc(&state->ptrbox, (sizeof(*node)));
if (node == NULL) {
errno = -ENOMEM;
return -1;
}
node->left = NULL;
node->right = NULL;
node->data = NULL;
*res = node;
return 0;
}