compiler/include/tokenizer.h

27 lines
508 B
C
Raw Normal View History

2024-07-21 02:04:32 +12:00
#ifndef __TOKENIZER_H__
#define __TOKENIZER_H__
extern const char* TokenTypeText[];
typedef enum TokenType {
TOKEN_LPAREN,
TOKEN_RPAREN,
TOKEN_NUMBER,
TOKEN_NAME,
TOKEN_STRING
} TokenType;
typedef struct Token {
char* value;
TokenType type;
} Token;
2024-07-22 15:46:25 +12:00
typedef sl_vec(Token*) TokenVec;
2024-07-21 02:04:32 +12:00
2024-07-22 15:46:25 +12:00
void tokenize(char* input, TokenVec* tokens);
Token* token_create(char* value, TokenType type);
2024-07-21 02:04:32 +12:00
Token* token_append(Token* root, Token* new_token);
2024-07-22 15:46:25 +12:00
void tokens_print(TokenVec tokens);
2024-07-21 02:04:32 +12:00
#endif