Files
assm-test/includes/token.h
T

54 lines
808 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, NOP, IN, OUT,
//Registers
R1, R2, R3, R4, R5, R6, R7, R8
} TokenType;
typedef enum {
None = 0,
Reg = 1,
Constant = 2,
Address = 4,
Opcode = 8,
Directive = 16
} 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