summaryrefslogtreecommitdiff
path: root/src/lexer.h
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-06-13 14:50:00 -0700
committerKai Stevenson <kai@kaistevenson.com>2023-06-13 14:50:00 -0700
commit1d3bbec4660dfe4e2117826ceef9b32758b40345 (patch)
tree7c33cdf17774a122af89f3ae7743771f047942a7 /src/lexer.h
parentcaa9d17ea794a0b4823170551545498d458e1fc2 (diff)
restructured project
Diffstat (limited to 'src/lexer.h')
-rw-r--r--src/lexer.h40
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