Armstrong L. M. G. Q. | Laisy C. F. S. |
💻 @lohhans | 💻 @laisy |
Implementação de um compilador para a disciplina de "Compiladores", no curso de Ciência da Computação na Universidade Federal do Agreste de Pernambuco. Estruturas desenvolvidas conforme orientação da Prof. Dra. Maria Aparecida A. Sibaldo.
A gramática precisa ser LL(1).
Gramáticas LL(1) podem ser analisadas por um simples parser descentente recursivo e deve estar:
– Sem recursão a esquerda
– Fatorada a esquerda
– 1 símbolo de look-ahead
Além disso, a linguagem deve cobrir os seguintes aspectos:
-
Declaração de variáveis de tipo inteiro e booleano
-
Declaração de procedimentos e funções (sem e com parâmetros)
-
Comandos de atribuição
-
Chamada de procedimentos e funções
-
Comando de desvio condicional (if e else)
-
Comando de laço (while)
-
Comando de retorno de valor
-
Comandos de desvio incondicional (break e continue)
-
Comando de impressão de constante e variável na tela
-
Expressões aritméticas (+, -, * e /)
-
Expressões booleanas (==, !=, >, >=, < e <=)
Para acessar a gramática, clique aqui