Calculadora Aritmética
Considere a seguinte linguagem, já apresentada nas aulas teóricas, que permite interactuar
com uma calculadora:
- ? id
- Instrução de leitura: permite ler do teclado um valor que deverá ser guardado
numa variável de nome id;
- ! exp
- Instrução de escrita: permite escrever no monitor o valor da expressão
exp que recebe como argumento;
- id = exp
- Instrução de atribuição: permite associar a uma variável identificada por
id o valor da expressão exp;
Numa expressão podem ser utilizados os seguintes operadores/operandos: valores do tipo
inteiro, identificadores de variáveis, '+', '-', '*', '/', '(' e ')'.
Considere o seguinte exemplo válido escrito nesta linguagem:
? a
b = 2 * a + 3
c = b + a
! b
! c
A marca de fim de ficheiro representará o fim da interacção.
Tente, então, desenvolver as seguintes alíneas:
(a)Especifique uma GIC para a linguagem em causa;
(b)Especifique o analisador léxico em flex;
(c)Especifique o analisador sintáctico em yacc;
(d)Especifique a makefile.
(e)Depois de testar a análise sintáctica acrescente as acções semânticas
necessárias para o cálculo das expressões e para a leitura e a escrita de valores.