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; }