diff options
| author | Carson Fleming <[email protected]> | 2026-03-26 16:21:29 -0400 |
|---|---|---|
| committer | Carson Fleming <[email protected]> | 2026-03-26 16:22:00 -0400 |
| commit | 7d9fb2c733c8c64f6f74eefa0eea35b36be102cd (patch) | |
| tree | 16b6cded5f9611e0ff1948395578845c9688b926 /main.c | |
| parent | 68db110d34611fc8bb79035d3a11bba07dea43f3 (diff) | |
| download | ccc-7d9fb2c733c8c64f6f74eefa0eea35b36be102cd.tar.gz | |
let's go we can parse return zero most useful program ever
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 44 |
1 files changed, 31 insertions, 13 deletions
@@ -1,34 +1,30 @@ #include "lexer.h" +#include "parser.h" #include <stdlib.h> #include <stdio.h> -int main(int argc, char** argv) { - if (argc < 2) { - fprintf(stderr, "ccc: no input files\n"); - return 1; - } - +void test_lexer(int argc, char** argv) { struct token token; for (int i = 1; i < argc; i++) { lexer_load(argv[i]); while (lexer_pop(&token)) { printf("[%s]: ", argv[i]); switch (token.type) { - case IDENTIFIER: - printf("got identifier: %s\n", token.data.identifier); - free(token.data.identifier); + case TK_IDENT: + printf("got identifier: %s\n", token.data.ident); + free(token.data.ident); break; - case STR_LIT: + case TK_STR_LIT: printf("got string: %s\n", token.data.str_lit); free(token.data.str_lit); break; - case INT_LIT: + case TK_INT_LIT: printf("got int: %lld\n", token.data.int_lit); break; - case FLOAT_LIT: + case TK_FLOAT_LIT: printf("got float: %lf\n", token.data.float_lit); break; - case CHAR_LIT: + case TK_CHAR_LIT: printf("got char: %c\n", token.data.char_lit); break; default: @@ -38,3 +34,25 @@ int main(int argc, char** argv) { lexer_close(); } } + +void gdb_break_here() {} + +void test_parser(int argc, char** argv) { + struct root_node* root; + struct root_node** p_cur = &root; + for (int i = 1; i < argc; i++) { + *p_cur = parse(argv[i]); + p_cur = &((*p_cur)->next); + } + gdb_break_here(); + ast_destroy(root); +} + +int main(int argc, char** argv) { + if (argc < 2) { + fprintf(stderr, "ccc: no input files\n"); + return 1; + } + + test_parser(argc, argv); +} |
