Files
assm-test/includes/token.h
T
2022-08-25 18:37:25 +00:00

53 lines
788 B
C

#ifndef TOKEN_H
#define TOKEN_H
#include "stdlib.h"
#include <string.h>
#include <errno.h>
#include <stdio.h>
typedef enum {
PLUS,
MINUS,
STAR,
SLASH,
POWER,
LPARAM,
RPARAM,
LBRACKET,
RBracket,
COMMA,
STRING,
IDENTIFIER,
LABEL,
NUMBER,
LineEnd,
//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,
Directive = 8
} 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