aboutsummaryrefslogtreecommitdiff
path: root/chunk.d
diff options
context:
space:
mode:
authormryouse2023-05-28 00:55:50 +0000
committermryouse2023-05-28 00:55:50 +0000
commit2312e0231eb2667858b1c712c20d0891cabfc74d (patch)
tree64f7b973974725b50ea527d9e1bc0ecc298cc084 /chunk.d
parent82df87bda882fadf7d5c11de50f8fe7628aa0448 (diff)
cleanup
Diffstat (limited to 'chunk.d')
-rw-r--r--chunk.d72
1 files changed, 41 insertions, 31 deletions
diff --git a/chunk.d b/chunk.d
index 6e572aa..ea05d61 100644
--- a/chunk.d
+++ b/chunk.d
@@ -169,57 +169,70 @@ class List : Seq {
}
enum OpCode {
+
+ // MATH
OP_ADD,
- OP_LESS,
- OP_NOT,
+ OP_DIVIDE,
+ OP_INCREMENT,
+ OP_MULTIPLY,
+ OP_NEGATE,
+ OP_SUBTRACT,
+ OP_ZERO,
+
+ // BOOLEAN
OP_EQUAL,
OP_GREATER,
- OP_NEGATE,
- OP_RETURN,
+ OP_LESS,
+ OP_NOT,
+
+ // LISTS
+ OP_LIST,
+ OP_LIST_N,
+
+ // SEQUENCES
+ OP_CONCAT, // No?
+ OP_FIRST, // No?
+ OP_LENGTH,
+ OP_MEMBER,
+ OP_REST,
+
+ // DEFINITIONS/VARIABLES
OP_CONSTANT,
OP_DEF_GLOBAL,
- OP_GET_GLOBAL,
- OP_SET_GLOBAL,
OP_DEF_LOCAL,
+ OP_GET_GLOBAL,
OP_GET_LOCAL,
+ OP_SET_GLOBAL,
OP_SET_LOCAL,
- OP_POP,
- OP_POPB,
- OP_POP_SCOPE,
- OP_SUBTRACT,
- OP_MULTIPLY,
- OP_DIVIDE,
- OP_NIL,
+ // JUMPS
OP_JUMP,
OP_JUMP_IF_FALSE,
OP_JUMP_IF_TRUE,
OP_JUMP_TO,
- OP_IS_NIL,
+ // STACK THINGS
OP_DUPLICATE,
OP_DUPLICATE_2,
+ OP_POP,
+ OP_POPB,
+ OP_POP_SCOPE,
OP_ROTATE_N,
- OP_ZERO,
- OP_INCREMENT,
- OP_LIST_N,
-
- OP_CALL,
-
- OP_LIST,
- OP_CONCAT, // No?
+ // RANDOM
+ OP_NIL,
- OP_FIRST, // No?
- OP_REST,
- OP_LENGTH,
- OP_MEMBER,
+ // FUNCTIONS
+ OP_CALL,
+ OP_RETURN,
- OP_TYPE_CHECK_NUMBER,
+ // TYPES
+ OP_IS_NIL,
OP_TYPE_CHECK_BOOLEAN,
- OP_TYPE_CHECK_STRING,
OP_TYPE_CHECK_LIST,
+ OP_TYPE_CHECK_NUMBER,
OP_TYPE_CHECK_SEQ,
+ OP_TYPE_CHECK_STRING,
}
class Chunk {
@@ -228,7 +241,6 @@ class Chunk {
int[] lines;
Value[] constants;
- //int writeOp(OpCode opCode, int line) {
int writeOp(ubyte opCode, int line) {
this.code ~= opCode;
this.lines ~= line;
@@ -244,5 +256,3 @@ class Chunk {
}
}
-
-