diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2023-06-13 14:50:00 -0700 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2023-06-13 14:50:00 -0700 |
| commit | 1d3bbec4660dfe4e2117826ceef9b32758b40345 (patch) | |
| tree | 7c33cdf17774a122af89f3ae7743771f047942a7 /src/lexer.h | |
| parent | caa9d17ea794a0b4823170551545498d458e1fc2 (diff) | |
restructured project
Diffstat (limited to 'src/lexer.h')
| -rw-r--r-- | src/lexer.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/lexer.h b/src/lexer.h new file mode 100644 index 0000000..e5d64dc --- /dev/null +++ b/src/lexer.h @@ -0,0 +1,40 @@ +#ifndef LEXER +#define LEXER +typedef enum TokenType { + ERR, + EOL, + INDENT, + 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 |
