backend: Add abstract syntax tree groundwork

Signed-off-by: Ian Moffett <ian@mirocom.org>
This commit is contained in:
2026-03-21 19:03:05 -04:00
parent 2e4f11bfcc
commit b769c1cdeb
2 changed files with 94 additions and 0 deletions

38
backend/ast.c Normal file
View File

@@ -0,0 +1,38 @@
/*
* 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;
}