diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 37 |
1 files changed, 36 insertions, 1 deletions
@@ -1,9 +1,44 @@ #include<stdio.h> +#include<program.h> #include<lexer.h> +#include<string.h> +#include<print.h> -int main() +int main(int argc,char **argv) { + struct Options *options; + struct Source *source; + struct Program *program; + struct Translation_Data *translation_data; + + options=parse_command_line(argv); + if(options->source==NULL) + { + printf("No source file specified\n"); + return 0; + } + source=extract_source(strdup(options->source)); + translation_data=get_translation_data(); + + + if(options->print_tokens) + { + lex(translation_data->tokens,source,translation_data); + if(translation_data->errors->size>0) + { + printf("There was an error!\n"); + print_tokens(translation_data->tokens); + return 1; + }else + { + print_tokens(translation_data->tokens); + } + + } + + delete_source(source); + delete_options(options); return 0; } |