i hate my life
This commit is contained in:
@@ -1,18 +1,35 @@
|
||||
#ifndef INSTRUCTIONS_H
|
||||
#define INSTRUCTIONS_H
|
||||
|
||||
#include "../vmbl.h"
|
||||
|
||||
#define MAX_ARGS 3
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ARG_TYPE_NONE,
|
||||
ARG_TYPE_INT
|
||||
} ArgType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *mnemonic,
|
||||
uint8_t argCount,
|
||||
ArgType args[MAX_ARGS]
|
||||
char *mnemonic;
|
||||
uint8_t argCount;
|
||||
ArgType args[MAX_ARGS];
|
||||
} InstructionInfo;
|
||||
|
||||
#endif // !INSTRUCTIONS_H
|
||||
static const InstructionInfo instruction_table[] = {
|
||||
[INSTRUCTION_NOP] = { "nop", 0, { ARG_TYPE_NONE } },
|
||||
[INSTRUCTION_PUSH] = { "push", 1, { ARG_TYPE_INT } },
|
||||
[INSTRUCTION_DROP] = { "drop", 1, { ARG_TYPE_INT } },
|
||||
[INSTRUCTION_ADD] = { "add", 0, { ARG_TYPE_NONE } },
|
||||
[INSTRUCTION_SUB] = { "sub", 0, { ARG_TYPE_NONE } },
|
||||
[INSTRUCTION_MUL] = { "mul", 0, { ARG_TYPE_NONE } },
|
||||
[INSTRUCTION_DIV] = { "div", 0, { ARG_TYPE_NONE } },
|
||||
[INSTRUCTION_DUPLICATE] = { "dup", 1, { ARG_TYPE_INT } },
|
||||
[INSTRUCTION_HALT] = { "halt", 0, { ARG_TYPE_NONE } },
|
||||
};
|
||||
|
||||
InstructionType instructionNameToType(char* instName);
|
||||
|
||||
#endif // !INSTRUCTIONS_H
|
||||
Reference in New Issue
Block a user