X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=main.c;h=eb0c479ad8a1ba318bff2bc1087d3fd9936e82b9;hb=97f33b63c421063c4cbc869c60076b9132667835;hp=81d476022db346af8fd8e84f97f6194bf37f5856;hpb=d5e8df5885f97ea65839f8970b8697549c207610;p=cparser diff --git a/main.c b/main.c index 81d4760..eb0c479 100644 --- a/main.c +++ b/main.c @@ -7,6 +7,8 @@ #include "lexer_t.h" #include "token_t.h" +#include "type_hash.h" +#include "parser.h" #if 0 static @@ -37,24 +39,25 @@ void get_output_name(char *buf, size_t buflen, const char *inputname, static void compile(const char *fname) { - lexer_t lexer; - token_t token; - FILE *in = fopen(fname, "r"); if(in == NULL) { fprintf(stderr, "Couldn't open '%s': %s\n", fname, strerror(errno)); exit(1); } - lexer_init(&lexer, in, fname); + lexer_open_stream(in, fname); +#if 0 + token_t token; do { - lexer_next_token(&lexer, &token); + lexer_next_token(&token); print_token(stdout, &token); puts(""); } while(token.type != T_EOF); +#else + parse(); +#endif - lexer_destroy(&lexer); fclose(in); } @@ -62,11 +65,21 @@ int main(int argc, char **argv) { init_symbol_table(); init_tokens(); + init_lexer(); + init_types(); + init_typehash(); + init_ast(); + init_parser(); for(int i = 1; i < argc; ++i) { compile(argv[i]); } + exit_parser(); + exit_ast(); + exit_typehash(); + exit_types(); + exit_lexer(); exit_tokens(); exit_symbol_table(); return 0;