Leia com atenção as instruções abaixo.
Coloque os arquivos da atividade na pasta atividades/atividade16 no seu repositório. Use a sintaxe da linguagem Markdown e coloque as respostas no arquivo atividade16.md.
Valor: 3,0 pontos na 3ª Nota.
Data da Entrega Limite: 04/09/2021
Considere a seguinte extensão da gramática da Figura 6.22 (página 332), para incluir declarações de funções e ativações:
programa -> var-decls ; fun-decls ; decls var-decls -> var-decls ; var-decl | var-decl var-decl -> id : tipo-exp tipo-exp -> int | bool | array [num] of tipo-exp fun-decls -> fun id( var-decls ) : tipo-exp ; corpo corpo -> exp decls -> decls ; decl | decl decl -> if exp then decl | id := exp exp -> exp + exp | exp or exp | exp [ exp ] | id (exps) | num | true | false | id exps -> exps, exp | exp