fix the thing with the thing
This commit is contained in:
parent
43e7f57fd0
commit
b4b00cb6d2
2 changed files with 16 additions and 2 deletions
|
@ -52,6 +52,20 @@ static void recurse_program(Program* program, Tape* tape) {
|
||||||
next:
|
next:
|
||||||
program_next(program, &s);
|
program_next(program, &s);
|
||||||
|
|
||||||
|
// printf("[");
|
||||||
|
// for(uint32_t i = 0; i < tape->len; i++) {
|
||||||
|
// printf("0x%02x ", tape->data[i]);
|
||||||
|
// }
|
||||||
|
// printf("\b]\n ");
|
||||||
|
// for(uint32_t i = 0; i < tape->len; i++) {
|
||||||
|
// if (i == tape->index) {
|
||||||
|
// printf(" ^ ");
|
||||||
|
// } else {
|
||||||
|
// printf(" ");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// printf(" \ + tape->indexn");
|
||||||
|
|
||||||
switch (s) {
|
switch (s) {
|
||||||
case MoveLeft:
|
case MoveLeft:
|
||||||
tape_left(tape);
|
tape_left(tape);
|
||||||
|
@ -85,7 +99,7 @@ next:
|
||||||
case Allocate: {
|
case Allocate: {
|
||||||
uint8_t len = tape_get(tape);
|
uint8_t len = tape_get(tape);
|
||||||
Tape* new = malloc(sizeof(Tape));
|
Tape* new = malloc(sizeof(Tape));
|
||||||
tape_init(len, tape);
|
tape_init(len, new);
|
||||||
void* ptr = (void*) tape_ptr(tape);
|
void* ptr = (void*) tape_ptr(tape);
|
||||||
memcpy(ptr, &new, sizeof(Tape*));
|
memcpy(ptr, &new, sizeof(Tape*));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -159,7 +159,7 @@ void tape_set(Tape* tape, uint8_t value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t* tape_ptr(Tape* tape) {
|
uint8_t* tape_ptr(Tape* tape) {
|
||||||
return tape->data;
|
return tape->data + tape->index;
|
||||||
}
|
}
|
||||||
|
|
||||||
void tape_free(Tape* tape) {
|
void tape_free(Tape* tape) {
|
||||||
|
|
Loading…
Reference in a new issue