Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }