summaryrefslogtreecommitdiff
path: root/src/lib/eval.c
blob: f0cdc55c862c18addb5bef3ae797a442f9eb19c0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "aplwc_internal.h"

struct aplwc_value *
eval_line(struct aplwc_line *line)
{
	struct aplwc_value *value;
	struct aplwc *aplwc;

	aplwc = line->aplwc;
	assert(aplwc->last_error == APLWC_OK);

	value = memory_alloc_aplwc_value(&aplwc->memory);
	if(value == NULL)
		aplwc->last_error = APLWC_OUT_OF_MEMORY;
	value->aplwc = aplwc;
	value->tag = VALUE_NULL;
	
	return value;
}