Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro na ASA quando um Se é escrito seguido de um Senao #810

Closed
LuanContini opened this issue Jun 1, 2020 · 3 comments
Closed

Erro na ASA quando um Se é escrito seguido de um Senao #810

LuanContini opened this issue Jun 1, 2020 · 3 comments
Labels
bug Indica que ocorreu um erro inesperado no programa/código
Milestone

Comments

@LuanContini
Copy link

br.univali.ps.nucleo.ExcecaoAplicacao: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at br.univali.ps.nucleo.TratadorExcecoes.transformarExcecao(TratadorExcecoes.java:267)
at br.univali.ps.nucleo.TratadorExcecoes.exibirExcecao(TratadorExcecoes.java:42)
at br.univali.ps.ui.abas.AbaCodigoFonte$AcaoExecucao.actionPerformed(AbaCodigoFonte.java:1105)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at br.univali.ps.ui.abas.AbaCodigoFonte$AcaoExecucao.actionPerformed(AbaCodigoFonte.java:1096)
... 40 more
Caused by: java.lang.NullPointerException
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.getBlocos(GeradorASA.java:341)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.visitSe(GeradorASA.java:681)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.visitSe(GeradorASA.java:31)
at br.univali.portugol.nucleo.analise.sintatica.antlr4.PortugolParser$SeContext.accept(PortugolParser.java:1571)
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
at br.univali.portugol.nucleo.analise.sintatica.antlr4.PortugolBaseVisitor.visitComando(PortugolBaseVisitor.java:139)
at br.univali.portugol.nucleo.analise.sintatica.antlr4.PortugolParser$ComandoContext.accept(PortugolParser.java:1218)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.getBlocos(GeradorASA.java:325)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.visitDeclaracaoFuncao(GeradorASA.java:187)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.visitDeclaracaoFuncao(GeradorASA.java:31)
at br.univali.portugol.nucleo.analise.sintatica.antlr4.PortugolParser$DeclaracaoFuncaoContext.accept(PortugolParser.java:896)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA$Antlr4ParserVisitor.visitArquivo(GeradorASA.java:50)
at br.univali.portugol.nucleo.analise.sintatica.GeradorASA.geraASA(GeradorASA.java:26)
at br.univali.portugol.nucleo.analise.sintatica.AnalisadorSintatico.analisar(AnalisadorSintatico.java:155)
at br.univali.portugol.nucleo.analise.AnalisadorAlgoritmo.analisar(AnalisadorAlgoritmo.java:57)
at br.univali.portugol.nucleo.compilador.Compilador.compilar(Compilador.java:84)
at br.univali.portugol.nucleo.Portugol.compilar(Portugol.java:29)
at br.univali.portugol.nucleo.Portugol.compilarParaExecucao(Portugol.java:48)
at br.univali.ps.ui.abas.AbaCodigoFonte.lambda$compilaProgramaParaExecucao$4(AbaCodigoFonte.java:1957)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

@AdsonEsteves
Copy link
Member

@triztesa
Esse erro ocorre com frequencia? Com algum código especifico? Consegue repetir ele?

@LuanContini
Copy link
Author

ele sempre ocorre com o mesmo programa, e mesmo que eu mudasse alguma coisa simples ele dizia o mesmo erro, o código é esse:(Ainda estou aprendendo e estava testando com a decisão se)
programa
{

funcao inicio()
{
real mesada, porcentagem, por, mesadafinal, deci
escreva("           __________________\n")
escreva("           ||Mesada da Copa||\n")
escreva("           |----------------|\n")
escreva("_________________________________________\n")
escreva("|Escreva o valor da mesada do Terêncio:  |\n")

leia(mesada)
escreva("<---------------------------------------->\n")
escreva("___________________________________\n")
escreva("|Escreva o valor da porcentagem: |\n")
leia(porcentagem)
escreva("\n<---------------------------------------->\n")
por=porcentagem/100*mesada
mesadafinal=mesada+por
escreva("\n ______________________________________________________________________")
escreva("\n |Digite 1 para saber: Quanto Terêncio vai ganhar a mais de mesada. |")
escreva("\n |--------------------------------------------------------------------|")
escreva("\n |Digite 2 para saber: Quanto será o novo valor da mesada de Terêncio.|")
escreva("\n |--------------------------------------------------------------------|\n")
leia(deci)
se senao(deci == 1){
escreva("\nTerêncio ganhará R$ ",por, " de aumento na mesada")
}
se senao (deci == 2){
escreva("\nTerêncio ganhará R$ ",mesadafinal," de mesada")

	}	
senao {
	escreva("\nOpção inválida")
	}	
}

}

@AdsonEsteves
Copy link
Member

@triztesa
Muito Obrigado pelo reporte, vai nos ajudar a resolver o problema.

O comando se não se usa junto com um senão.
image
Essa é a forma correta, espero ter ajudado

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indica que ocorreu um erro inesperado no programa/código
Projects
None yet
Development

No branches or pull requests

2 participants