From 9455b73b42d0fb7100b9afd662818b0199ae510c Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Fri, 1 Aug 2025 22:53:33 -0400 Subject: begin working on graph IR --- lex.h | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) (limited to 'lex.h') diff --git a/lex.h b/lex.h index 460636a..daf71cc 100644 --- a/lex.h +++ b/lex.h @@ -4,27 +4,27 @@ #include "str.h" #define LEX_TOK_LIST\ - X(TOK_EOF, "end-of-file")\ - X(TOK_IDENT, "identifier")\ - X(TOK_PROC, "proc")\ - X(TOK_LET, "let")\ - X(TOK_VAR, "var")\ - X(TOK_CONST, "const")\ - X(TOK_RETURN, "return")\ - X(TOK_LBRACE, "{")\ - X(TOK_RBRACE, "}")\ - X(TOK_LPAREN, "(")\ - X(TOK_RPAREN, ")")\ - X(TOK_PLUS, "+")\ - X(TOK_MINUS, "-")\ - X(TOK_ASTERISK, "*")\ - X(TOK_SLASH, "/")\ - X(TOK_EQUALS, "=")\ - X(TOK_COLON, ":")\ - X(TOK_COMMA, ",")\ - X(TOK_LIT_STR, "string literal")\ - X(TOK_LIT_CHAR, "character literal")\ - X(TOK_LIT_NUM, "numeric literal") + X(EOF, "end-of-file")\ + X(IDENT, "identifier")\ + X(PROC, "proc")\ + X(LET, "let")\ + X(VAR, "var")\ + X(CONST, "const")\ + X(RETURN, "return")\ + X(LBRACE, "{")\ + X(RBRACE, "}")\ + X(LPAREN, "(")\ + X(RPAREN, ")")\ + X(PLUS, "+")\ + X(MINUS, "-")\ + X(ASTERISK, "*")\ + X(SLASH, "/")\ + X(EQUALS, "=")\ + X(COLON, ":")\ + X(COMMA, ",")\ + X(LIT_STR, "string literal")\ + X(LIT_CHAR, "character literal")\ + X(LIT_NUM, "numeric literal") #define LEX_TOK_CHAR_LIST\ X(TOK_LBRACE, '{')\ @@ -40,7 +40,7 @@ X(TOK_COMMA, ',') typedef enum { -#define X(n, s) n, +#define X(n, s) TOK_##n, LEX_TOK_LIST #undef X TOK_MAX, @@ -53,7 +53,12 @@ static const char *lex_tok_str[TOK_MAX] = { }; #define TMASK(t) (1L << t) -typedef unsigned long TokMask; + +typedef enum { +#define X(n, s) TM_##n = TMASK(TOK_##n), + LEX_TOK_LIST +#undef X +} TokMask; typedef struct { Token tok; -- cgit v1.2.3