Ejemplo n.º 1
0
int compile_chain(string filename) {
    cout << "[ Compiling... ]" << endl;
   	InputPtr input = Input::open_file(filename);
    if (input != nullptr) {
        ScannerPtr scanner = ScannerPtr(new Scanner(input));
        SemanticAnalyzerPtr analyzer = SemanticAnalyzerPtr(new SemanticAnalyzer(filename));
        ParserPtr parser = ParserPtr(new Parser(scanner, analyzer));
        parser->parse();
        parser->get_analyzer()->generate_all();
        report_msg_type("Success", "Compilation terminated successfully");
    } else {
        return -1;
    }
    cout << "[ End ]" << endl;
    return 0;
}