UnBCIC-TP2 / Oberon-Scala

An implementation of the Oberon language using Scala
55 stars 118 forks source link

Grupo 09 - Mudanças no Interpreter para adicionar suporte a Ponteiros e Records #156

Open MaxwellOliveira01 opened 10 months ago

MaxwellOliveira01 commented 10 months ago

Maxwell Oliveira dos Reis - 221002100 Luiz Eduardo Pereira dos Reis - 221017088 João Gilberto de Oliveira Teixeira - 211036070

O tipo Location foi dividido em "BaseLocation" e "NullLocation", o motivo ficará mais claro a seguir.

Ponteiros:

Segue um exemplo do quê agora é possível fazer com os ponteiros. Note que, neste caso, tanto "a" e "b" apontarão para um endereço com valor "10.5" image

Records:

Segue um exemplo do quê agora é possível fazer com as records. image

Problemas encontrado: Atualmente a AST não permite algo do tipo "a^^ := 5" em ponteiros. Isso limita a criação de ponteiros de vários níveis, como um "ponteiro de ... de ponteiro", pois só permite que um nível do ponteiro seja utilizado no programa Oberon. Para auxiliar um possível grupo que passe por este problema no futuro, nós deixamos alguns trechos de código que serão úteis: