code.c 619 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>

#include "code.h"
#include "thunk.h"

struct Thunk* exec(Code* expr)
{   
	switch(expr->type)
	{
		case CT_LIT:
			switch(expr->local_type)
			{
				case LIT_INT:
					return createI(((LitEntry*) expr)->_int);
					break;
				default:
					printf("Exec: Unhandled LIT type");
					exit(-1);
			}
			break;
22
23
24
25
26
27
28
29
30
31
		case CT_VAR:
			switch(expr->local_type)
			{
				case VAR_FN:
					return createF(((VarEntry*) expr)->f, 0);
					break;
				default:
					printf("Exec: Unhandled VAR type");
					exit(-1);				
			}
32
33
34
35
36
		default:
			printf("Exec: Unhandled CODE type");
			exit(-1);		
	}
}