#ifndef LEXER #define LEXER typedef enum TokenType { ERR, EOL, STRING, INT, OPEN_PAREN, CLOSE_PAREN, START_COMMENT, JUSTIFICATION, PREMISE, ASSUMPTION, NEGATION, CONJUNCTION, DISJUNCTION, IMPLICATION, BI_IMPLICATION, EXPLOSION, ELIMINATION, INTRODUCTION } tokenType_t; typedef struct Token { tokenType_t type; void* value; } token_t; token_t init_token(tokenType_t type, void* value); typedef struct TokenSet { token_t* tokens; int count; } tokenSet_t; tokenSet_t init_tokenset(token_t* tokens, int count); char* tttos(tokenType_t tokenType); int advance_whitespace(char** linePointer); tokenSet_t lex_line(char* line); token_t lex_first_token(char** content); token_t lex_first_string(char** content); token_t lex_first_int(char** content); #endif