diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2023-06-10 23:45:25 -0700 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2023-06-10 23:45:25 -0700 |
| commit | 2a232f8f42c0a7d5a7b648358a192c21865a55f6 (patch) | |
| tree | 81e5e768f75c5bd6da27235c723666f4cc4c2b1a /lexer.h | |
lexing works
Diffstat (limited to 'lexer.h')
| -rw-r--r-- | lexer.h | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -0,0 +1,39 @@ +#ifndef LEXER +#define LEXER +typedef enum TokenType { + ERR, + EOL, + STRING, + INT, + OPEN_PAREN, + CLOSE_PAREN, + START_COMMENT, + JUSTIFICATION, + PREMISE, + ASSUMPTION, + 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 LinkedList { + void* value; + struct LinkedList* next; +} linkList_t; + +linkList_t* init_linklist(void* value, linkList_t* next); +int advance_whitespace(char** linePointer); +linkList_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 |
