/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package common; /** * * @author Eugenio * @param */ public interface IvannosysTargetArch { public IvannosysTargetArch Init(Code tac) throws Exception; public IvannosysTargetArch Compile() throws Exception; public IvannosysTargetArch Format() throws Exception; // Export gera a representacao fisica do codigo // Sua funcao é gerar o(s) arquivo(s) de saida public IvannosysTargetArch Export() throws Exception; // Metodos de traduzir tac para target public void Prolog(String id) throws Exception; public void Epilog(String id) throws Exception; public void TranslateLabel(Instruction inst) throws Exception; public void TranslateAssign(Instruction inst) throws Exception; public void TranslateJump(Instruction inst) throws Exception; public void TranslateCall(Instruction inst) throws Exception; public void TranslateReturn(Instruction inst) throws Exception; public void TranslatePushParam(Instruction inst) throws Exception; public void TranslatePushReturn(Instruction inst) throws Exception; public void TranslatePopReturn(Instruction inst) throws Exception; public void TranslatePopParam(Instruction inst) throws Exception; public void TranslateBranch(Instruction inst) throws Exception; public void TranslateUnary(Instruction inst) throws Exception; public void TranslateIndexedAssignment(Instruction inst) throws Exception; public void TranslateCopy(Instruction inst) throws Exception; public void TranslatePointerAssignment(Instruction inst) throws Exception; public void TranslateLoad(Instruction inst) throws Exception; public void TranslateStore(Instruction inst) throws Exception; }