aboutsummaryrefslogtreecommitdiffstats
path: root/clox/src/chunk.h
diff options
context:
space:
mode:
authorGravatar Tom Willemse2021-07-08 02:24:24 -0700
committerGravatar Tom Willemse2021-07-08 02:25:13 -0700
commit2c007a8f94d65dc40f638b284db7e374a58b632f (patch)
tree260a1460cdb86c913e785171a85447afc03efddf /clox/src/chunk.h
parenta779473cede81f4d3b4eed6f6b4e4184d43ffa87 (diff)
downloadcrafting-interpreters-2c007a8f94d65dc40f638b284db7e374a58b632f.tar.gz
crafting-interpreters-2c007a8f94d65dc40f638b284db7e374a58b632f.zip
Chapter 14.1-6
Diffstat (limited to 'clox/src/chunk.h')
-rw-r--r--clox/src/chunk.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/clox/src/chunk.h b/clox/src/chunk.h
new file mode 100644
index 0000000..466898b
--- /dev/null
+++ b/clox/src/chunk.h
@@ -0,0 +1,25 @@
+#ifndef clox_chunk_h
+#define clox_chunk_h
+
+#include "common.h"
+#include "value.h"
+
+typedef enum {
+ OP_CONSTANT,
+ OP_RETURN,
+} OpCode;
+
+typedef struct {
+ int count;
+ int capacity;
+ uint8_t* code;
+ int* lines;
+ ValueArray constants;
+} Chunk;
+
+void initChunk(Chunk* chunk);
+void freeChunk(Chunk* chunk);
+void writeChunk(Chunk* chunk, uint8_t byte, int line);
+int addConstant(Chunk* chunk, Value value);
+
+#endif