diff options
Diffstat (limited to 'chunk.d')
| -rw-r--r-- | chunk.d | 72 |
1 files changed, 41 insertions, 31 deletions
@@ -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 { } } - - |
