Attribute Grammars/Exercise 5: Expressions with bases (2)

From Wiki**3

< Attribute Grammars

Problem (in Portuguese)

Pretende-se criar uma gramática atributiva que some uma sequência de inteiros separados por +. A expressão tem no início a base de trabalho (valor entre 2 e 36 indicado em base 10: sequência de dígitos entre 0 e 9, representados pelo elemento lexical DIG), sendo separada da soma propriamente dita pelo símbolo #. Os números a somar (entre parenteses) são codificados como sequências de dígitos de 0 a 9 e, para bases acima de 10, contendo também as letras de A a Z que forem necessárias para representar todos os valores da base de trabalho.

O exemplo seguinte tem como resultado 360=(1*17^2+2*17^1+4*17^0)+(1*17^1+16*17^0).

1 7 # ( 1 2 4 + 1 G )

Crie a gramática para realizar a função descrita e construa a árvore semântica anotada para a entrada acima (incluindo grafo de dependências). Indique qual o significado de todos os atributos utilizados.

Solution