Foi implementado a inicialização de arrays para a linguagem Oberon.
Foram feitas modifcações na Gramática, Parser, TypeChecker, Interpreter e adição e correção de bugs para casos de teste.
Adicionamente foram modificados Fields, ArraysSubscripts e Pointer para suportarem inicialização de Arrays.
Também foi feita a refatoração da classe ArrayValue() para as classes ArrayType() e SimpleArrayValue().
O código abaixo agora é suportado pela linguagem:
MODULE ArrayInitialization;
TYPE
Party = RECORD
guestList : ARRAY 1 OF ARRAY 5 OF STRING;
expenses : ARRAY 5 OF REAL;
anotherRecord : RECORD
example : ARRAY 3 OF INTEGER;
END;
END
VAR
dogsBirthday : Party;
monthlyExpensesPerWeek : ARRAY 2 OF ARRAY 3 OF ARRAY 5 OF REAL;
totalPointer : POINTER TO ARRAY 5 OF REAL;
BEGIN
monthlyExpensesPerWeek[1][2] := [120.0, 34.50, 12.49, 45.0, 22.0];
dogsBirthday.guestList[0] := ["Marley", "Lassie", "Scoobydoo", "Beethoven", "Toto"];
dogsBirthday.expenses := [120.0, 34.50, 12.49, 45.0, 22.0];
dogsBirthday.anotherRecord.example := [1, 2, 3];
totalPointer^ := [160.0, 94.50, 42.49, 45.0, 81.0];
totalPointer^ := [160.0, 94.50, 42.49, 45.0, 82.0];
write(dogsBirthday.anotherRecord.example)
END
END ArrayInitialization.
Implementação de inicialização de arrays
Foi implementado a inicialização de arrays para a linguagem Oberon.
Foram feitas modifcações na Gramática, Parser, TypeChecker, Interpreter e adição e correção de bugs para casos de teste. Adicionamente foram modificados Fields, ArraysSubscripts e Pointer para suportarem inicialização de Arrays.
Também foi feita a refatoração da classe
ArrayValue()
para as classesArrayType()
eSimpleArrayValue()
. O código abaixo agora é suportado pela linguagem: