diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-06-08 12:58:04 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-06-08 12:58:04 +0200 |
commit | baea074f524676a889043779c80fb17cdd38f30d (patch) | |
tree | 4609684954145d092ed684ac38e94b8b04ecd79a /src/main.c | |
parent | 4f698ec642547534bac2b37f96de045dd828fd58 (diff) |
Do some lexer work
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -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); |