mymph / Compilador

Implementação de um compilador LL(1).
1 stars 0 forks source link

Problemas no corpo da função #4

Closed mymph closed 2 months ago

mymph commented 3 months ago

Há detecção de erro ao tentar declarar variável dentro da função. Parece ser um problema no corpo da função que espera um RETURN ou CLOSE_BRACKET. Isto é, não considera se há um corpo dentro da função

Exemplo teste


int a, b, c;
function soma(int x, int y) : int {
    int t; // [corpo_funcao] Analisando corpo da funcao
                [comandos] Analisando comandos
                *Aviso: Funcao sem comando RETURN*
                Syntax error: Erro na linha 4: Esperado token CLOSE_BRACKET, mas foi encontrado (token: "INT"; lexema: "int" - Linha 4), 
    t = 20;
    return z + y;
}
procedure imprimeSoma(int a, int b) {
    int d;
    d = 10; // compila com sucesso
    print(soma(a, b));
}