-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinterpreter.c
More file actions
27 lines (23 loc) · 780 Bytes
/
Copy pathinterpreter.c
File metadata and controls
27 lines (23 loc) · 780 Bytes
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
#include <stdio.h>
#include "common.h"
extern struct interpreter
interpreter_init(const int memlen)
{
struct interpreter interpret;
interpret.mem = (char *)malloc(MEMSIZE);
clean(interpret.mem, memlen);
interpret.ptr = interpret.mem;
return interpret;
}
extern void
interpreter_fin(struct interpreter *i)
{
if (i->mem != NULL)
free(i->mem);
}
extern void interpreter_right(struct interpreter *i){ i->ptr++; }
extern void interpreter_left(struct interpreter *i) { i->ptr--; }
extern void interpreter_inc(struct interpreter *i) { (*i->ptr)++; }
extern void interpreter_dec(struct interpreter *i) { (*i->ptr)--; }
extern void interpreter_in(struct interpreter *i) { *i->ptr = gchar(); }
extern void interpreter_out(struct interpreter *i) { pchar(*i->ptr); }