Implementando a symbol_table
[toypasc.git] / ast.c
bloba3a884a2421d49e2effc50bcbeeedd17f048773a
1 #include <stdlib.h>
2 #include "ast.h"
4 AstNode *
5 ast_node_new(int kind, int type, int linenum, Symbol *symbol)
7 int i;
8 AstNode *node;
10 node = (AstNode *) malloc (sizeof(AstNode));
12 node->kind = kind;
13 node->type = type;
14 node->linenum = linenum;
15 node->symbol = symbol;
17 for (i = 0; i < 3; i++)
18 node->children[i] = NULL;
19 node->next = NULL;
21 return node;
24 void
25 ast_node_destroy(AstNode *node)
27 int i;
29 if (node == NULL)
30 return;
32 for (i = 0; i < 3; i++)
33 ast_node_destroy(node->children[i]);
34 ast_node_destroy(node->next);
36 free(node);