From f4113cbcdc192b23f9b6e5e14b0a3e4afac35272 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 22 Oct 2021 10:57:23 +0200 Subject: Add line/col information for debugging purposes. --- src/bytecode/chunk.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/bytecode/chunk.h') diff --git a/src/bytecode/chunk.h b/src/bytecode/chunk.h index 29dd99d..6157057 100644 --- a/src/bytecode/chunk.h +++ b/src/bytecode/chunk.h @@ -4,14 +4,27 @@ #include "objects.h" #include "darray.h" +typedef struct LineInfo { + size_t line; + size_t col; +} LineInfo; + typedef struct Chunk { u8 *code; Object *constants; + LineInfo *lines; } Chunk; - +void add_code(Chunk chunk, u8 byte, size_t line, size_t col); size_t add_constant(Chunk chunk, Object obj); +void +add_code(Chunk chunk, u8 byte, size_t line, size_t col) { + array_push(chunk.code, byte); + LineInfo info = (LineInfo){line, col}; + array_push(chunk.lines, info); +} + size_t add_constant(Chunk chunk, Object obj) { size_t pos = array_size(chunk.constants); -- cgit v1.2.1