From b768269f91355292c7a5f5ecccdc80f6eec74634 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Mon, 6 Aug 2018 01:06:51 +1200 Subject: Factor token definitions out --- token.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 token.h (limited to 'token.h') diff --git a/token.h b/token.h new file mode 100644 index 0000000..c00c870 --- /dev/null +++ b/token.h @@ -0,0 +1,38 @@ +#ifndef HENCE_TOKEN_H +#define HENCE_TOKEN_H + +#define MAX_IDENT_LENGTH 128 + +enum TOKEN_TYPE { + /* Keywords */ + TOK_MODULE, + TOK_INPUT, + TOK_EXPR, + TOK_COLON, + TOK_EOL, + TOK_OR, + TOK_AND, + TOK_XOR, + TOK_NOT, + TOK_NAND, + TOK_NOR, + + /* Etc */ + TOK_IDENT +}; + +struct location { + size_t line; + size_t column; + size_t leading_whitespace_len; +}; + +struct token { + enum TOKEN_TYPE type; + struct location loc; + char value[MAX_IDENT_LENGTH]; + size_t span; + struct token *next; +}; + +#endif -- cgit v1.1