public void gera( ASAPrograma asa, PrintWriter saida, String nomeClasseJava, boolean geraCodigoParaInterrupcaoDeThread, boolean geraCodigoParaPontosDeParada, boolean geraCodigoParaInspecaoDeSimbolos) throws ExcecaoVisitaASA, IOException { PreCompilador preCompilador = new PreCompilador(); asa.aceitar(preCompilador); VisitorGeracaoCodigo gerador = new VisitorGeracaoCodigo( asa, saida, geraCodigoParaInterrupcaoDeThread, geraCodigoParaPontosDeParada, geraCodigoParaInspecaoDeSimbolos); int totalVariaveis = asa.getTotalVariaveisDeclaradas(); int totalVetores = asa.getTotalVetoresDeclarados(); int totalMatrizes = asa.getTotalMatrizesDeclaradas(); gerador .geraPackage("programas") .pulaLinha() .geraImportacaoPara(ErroExecucao.class) .geraImportacaoPara(Programa.class) .geraImportacaoDasBibliotecasIncluidas() .pulaLinha() .geraNomeDaClasse(nomeClasseJava) .geraChaveDeAberturaDaClasse() .pulaLinha() .geraAtributosParaAsBibliotecasIncluidas() .pulaLinha() .geraAtributosParaAsVariaveisGlobais() .pulaLinha() .geraAtributosParaAsVariaveisPassadasPorReferencia( preCompilador.getVariaveisPassadasPorReferencia()) .pulaLinha() .geraConstrutor(nomeClasseJava, totalVariaveis, totalVetores, totalMatrizes) .pulaLinha() .geraInicializacaoVariaveisGlobais() .pulaLinha() .geraMetodos(preCompilador.getFuncoesQuerForamInvocadas()) .geraChaveDeFechamentoDaClasse(); }
public GeradorCodigoJava() { this.seed = PreCompilador.getSeedGeracaoNomesValidos(); }