WIP bytecode and routine, read more

The tests are failing in a strange way, with the error message 'corrupted top size'. I don't know what it means, and it seems to be caused by a call to printf() within 'test_bytecode.c'. I need a break, as this is making me dizzy.
This commit is contained in:
2024-09-19 12:45:35 +10:00
parent 47ac1c5b30
commit 083ee950dd
7 changed files with 222 additions and 3 deletions

28
source/toy_routine.h Normal file
View File

@@ -0,0 +1,28 @@
#pragma once
#include "toy_common.h"
#include "toy_ast.h"
//routine - holds the individual parts of a compiled routine
typedef struct Toy_Routine {
unsigned char* param; //c-string params in sequence
int paramCapacity;
int paramCount;
unsigned char* code; //the instruction set
int codeCapacity;
int codeCount;
unsigned char* data; //{type,val} tuples of data
int dataCapacity;
int dataCount;
int* jump; //each 'jump' is the starting address of an element within 'data'
int jumpCapacity;
int jumpCount;
//TODO: duplicate the data and jumps for subroutines
} Toy_Routine;
TOY_API Toy_Routine Toy_compileRoutine(Toy_Ast* ast);
TOY_API void Toy_freeRoutine(Toy_Routine routine);