#ifndef LEXER_STATES_H #define LEXER_STATES_H #include "aliases.h" #include #define VALID_JSON true #define INVALID_JSON false typedef enum { TK_L_BRACE, TK_R_BRACE, TK_L_BRACKET, TK_R_BRACKET, TK_COLON, TK_COMMA, TK_NULL, TK_TRUE, TK_FALSE, TK_STRING_LITERAL, TK_INTEGER_LITERAL, TK_DOUBLE_LITERAL, } token_type_t; typedef union { void *no_val; i64 num_int; f64 num_frac; } token_value_t; typedef struct { token_type_t type; token_value_t value; } token_t; typedef struct lexer lexer_t; bool validate_json(char *json); #endif // !LEXER_STATES_H