Portugol-Studio icon indicating copy to clipboard operation
Portugol-Studio copied to clipboard

Erro gerado quando um vetor é incrementado com "++" seguido de um escreva

Open AdsonEsteves opened this issue 3 years ago • 2 comments

Descrição do Problema: Uma imagem vale mais que mil palavras image

programa
{
	
	funcao inicio()
	{
		inteiro cod[] = {1}
		inteiro a = 1

		cod[0]++
		func()

		a++
		escreva(0)
		
		cod[0]++
		escreva(0)
		
	}

	funcao func()
	{
		
	}
}

AdsonEsteves avatar Dec 04 '20 00:12 AdsonEsteves

O erro é causado pelo PortugolParser, ele separa os nodes de forma incorreta:

image

ele está tentando executar "++escreva(0)"

DiogoJunqueiraGeraldo avatar Feb 23 '21 03:02 DiogoJunqueiraGeraldo

A falha ocorre dentro do método adaptivePredict pertencente a classe ParserATNSimulator pertencente ao pacote org.antlr.v4.runtime.atn, não consegui encontrar uma correção, espero que a análise ajude no processo de correção.

DiogoJunqueiraGeraldo avatar Feb 23 '21 03:02 DiogoJunqueiraGeraldo