#include #include "cg.h" void main(int argc, char *argv[]) { Syntax *t; if (argc==2) set_file_name(argv[1]); else if (argc>2) { fprintf(stderr,"usage: cc [file.c]\n"); exit(1); } init_parser(); prepare_parser(); init_type_checker(); code_file=fopen("a.asm","w"); if (code_file==NULL) { printf("couldn't create a.asm\n"); exit(1); } init_code_generator(); while (1) { /* printf("---------------------------------------------\n"); */ if (lex_kind==SKsemicolon) prepare_parser(); if (lex_kind==SKendoffile) break; t=Pdeclaration(); /* printf("\nAs Read:\n"); print_statement(t); printf("\n"); */ typecheck(t); /* printf("\nAfter Semantic Analysis:\n"); print_statement(t); printf("\n"); */ translate_declarations(t); } if (!seen_main) printf("\nWarning: no main() defined\n"); /* printf("=============================================\n"); */ fclose(code_file); }