public static void Debug_Mips(string text, string path = "mips.s") { var root = BuildAST_Cool.BUILD(text); var cil_root = CILCompiler.Build(root); var sem = SemanticType.BuildAllType(root.class_list); //var solve = CIL_Execute.Execute(cil_root, sem); var prog = new MipsCompiler(cil_root, sem); string s = (prog.Visit(cil_root)); //Console.WriteLine(s); var w = new StreamWriter(path); w.Write(s); w.Close(); }
static void Compilator(string path, string dest, string mips) { var r = new StreamReader(path); var text = r.ReadToEnd(); var root = BuildAST_Cool.BUILD(text); if (root == null) { return; } var result = SemanticChecking(root); if (result.Item1) { var cil_root = CILCompiler.Build(root); string s = cil_root.ToString(); var w = new StreamWriter(dest); //Console.WriteLine(s); w.Write(s); w.Close(); var sem = SemanticType.BuildAllType(root.class_list); //var solve = CIL_Execute.Execute(cil_root, sem); var prog = new MipsCompiler(cil_root, sem); s = (prog.Visit(cil_root)); //Console.WriteLine(s); var t = new StreamWriter(mips); //Console.WriteLine(s); t.Write(s); t.Close(); } else { Console.WriteLine("There are some errors!!!"); foreach (var item in result.Item2.Log) { Console.WriteLine(item); } } }