#ifndef TOKEN_H #define TOKEN_H #include "stdlib.h" #include #include #include typedef enum { PLUS, MINUS, STAR, SLASH, POWER, LPARAM, RPARAM, LBRACKET, RBracket, COMMA, STRING, IDENTIFIER, LABEL, NUMBER, //Keywords DB, ORG, //Opcodes COPY, ADD, SUB, JZ, INT, YLD, RET, CMP, IN, OUT, //Registers R1, R2, R3, R4, R5, R6, R7, R8 } TokenType; typedef enum { None = 0, Reg = 1, Immediate16 = 2, Opcode = 4 } TokenClass; typedef struct { TokenType type; char* lexeme; void* value; int line; TokenClass token_class; } Token; Token* CreateToken(char*, void*, int, TokenType); void FreeToken(Token*); #endif