blob: 4ef1935933bf359ae7dfe3f6b223f38fd76a5274 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <stdbool.h>
#include <stdlib.h>
#include "types.h"
ast *newast(char *fname) {
ast *a = malloc(sizeof(ast));
a->fname = fname;
return a;
}
values *newastval(ast *a) {
values *v = malloc(sizeof(values));
v->ts[v->argc] = FUN;
v->as[0] = a;
v->argc = 1;
}
values *newintval(int i) {
values *v = malloc(sizeof(values));
v->ts[v->argc] = INT;
v->is[0] = i;
v->argc = 1;
}
values *addval(values *vs, values *v) {
if (v->ts[0] == INT)
vs->is[vs->argc] = v->is[0];
else
vs->as[vs->argc] = v->as[0];
vs->ts[vs->argc] = v->ts[0];
vs->argc++;
return vs;
}
|