helloJSON/include/lexer/lexer.h

42 lines
591 B
C

#ifndef LEXER_STATES_H
#define LEXER_STATES_H
#include "aliases.h"
#include <stdbool.h>
#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_STR_KEY,
TK_STR_VAL,
TK_INTEGER,
TK_DOUBLE,
} 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