public override object VisitPrograma([NotNull] CminusParser.ProgramaContext context) { VisitChildren(context); if (temMain == false) { Console.WriteLine("Linha " + 0 + ": Programa sem função main."); } Escopos.Insere("0000", Tabela.RetornaVariaveisGlobais()); Escopos.ImprimeEscopo(); return(null); }
public override object VisitPrograma([NotNull] CminusParser.ProgramaContext context) { //Console.WriteLine("VisitPrograma"); assembly.AppendLine("mov r31, " + (escopos.retornaTamanhoFuncao("0000") - 1)); //assembly.AppendLine("rm = " + (escopos.retornaTamanhoFuncao("0000") - 1)); //assembly.AppendLine("mov r29, 50"); //assembly.AppendLine("rx = MEM_SIZE"); assembly.AppendLine("jmp MAIN"); VisitChildren(context); assembly.AppendLine("halt"); File.WriteAllText("teste.temp", assembly.ToString()); return(null); }