#include <stdio.h>

#include <stdlib.h>

#include "type.h"

extern int syntax_err;

extern int semantic_err;

extern A_NODE* root;

FILE* fout;

void initialize();

void printf_ast();

void print_sem_ast();

void code_generation();

void semantic_analysis();

void main(int argc, char* argv[])

{

    if ((fout = fopen("a.asm", "w")) == NULL)

    {

        printf("can not open output file: a.asm");

        exit(1);

    }

    initialize();

    yyparse();

    if (syntax_err) exit(1);

    // print_ast(root);

    sementic_analysis(root);

    if (sementic_err) exit(1);

    code_generation(root);

    exit(0);

}