mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
40 lines
645 B
C
40 lines
645 B
C
#pragma once
|
|
|
|
typedef enum Opcode {
|
|
OP_EOF,
|
|
|
|
//basic statements
|
|
OP_ASSERT,
|
|
OP_PRINT,
|
|
|
|
//data
|
|
OP_LITERAL,
|
|
OP_LITERAL_LONG, //for more than 256 literals in a chunk
|
|
|
|
//arithmetic operators
|
|
OP_NEGATE,
|
|
OP_ADDITION,
|
|
OP_SUBTRACTION,
|
|
OP_MULTIPLICATION,
|
|
OP_DIVISION,
|
|
OP_MODULO,
|
|
OP_GROUPING_BEGIN,
|
|
OP_GROUPING_END,
|
|
|
|
//variable stuff
|
|
OP_SCOPE_BEGIN,
|
|
OP_SCOPE_END,
|
|
|
|
OP_TYPE_DECL, //declare a type to be used (as a literal)
|
|
OP_TYPE_DECL_LONG, //declare a type to be used (as a long literal)
|
|
|
|
OP_VAR_DECL,
|
|
OP_VAR_DECL_LONG,
|
|
// OP_VAR_ASSIGN, //stack: literal name, literal value
|
|
|
|
//meta
|
|
OP_SECTION_END,
|
|
//TODO: add more
|
|
} Opcode;
|
|
|