From baea074f524676a889043779c80fb17cdd38f30d Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sat, 8 Jun 2024 12:58:04 +0200 Subject: Do some lexer work --- src/main.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 2e6011b..9969401 100644 --- a/src/main.c +++ b/src/main.c @@ -30,6 +30,31 @@ main(int argc, char **argv) } toks; toks.p = lexstring(file.p, file.len, &toks.len); + for (size_t i = 0; i < toks.len; i++) { + struct lexeme l = toks.p[i]; + switch (l.kind) { + case LEXIDENT: + printf("Identifier: ā€˜%.*sā€™\n", (int)l.len, l.p); + break; + case LEXCOLON: puts("Colon"); break; + case LEXLBRACE: puts("Left brace"); break; + case LEXLPAR: puts("Left parenthesis"); break; + case LEXRBRACE: puts("Right brace"); break; + case LEXRPAR: puts("Right parenthesis"); break; + case LEXSEMI: puts("Semicolon"); break; + case LEXAMP: puts("Ampersand"); break; + case LEXEQ: puts("Equals"); break; + case LEXLANGL: puts("Left angle bracket"); break; + case LEXMINUS: puts("Minus"); break; + case LEXPIPE: puts("Pipe"); break; + case LEXPLUS: puts("Plus"); break; + case LEXRANGL: puts("Right angle bracket"); break; + case LEXSLASH: puts("Slash"); break; + case LEXSTAR: puts("Asterisk"); break; + case LEXTILDE: puts("Tilde"); break; + } + } + #if DEBUG free(file.p); free(toks.p); -- cgit v1.2.3