Laboratorium 8: tablica symboli z zagnieżdzaniem

Rozszerzamy nasz kalkulator ze zmiennymi z poprzedniego laboratorium do prostego języka programowania ze strukturą blokową, na przykład

int a = 1;
int b = 2*a;
{
  int a = 3;
  b = a+b;
}
b-a;

alternatywnie

int a,b;
a = 1;
b = 2*a;
{
  int a ;
  a = 3;
  b = a+b;
}
b-a;

W tym celu należy zaimplementować tablicę symboli co najmniej z operacjami:

  • wejście do zakresu
  • dodanie definicji (identyfikator i jego wartość)
  • odczytanie wartości identyfikatora
  • modyfikacja identyfikatora
  • opuszczenie zakresu

Mozna przyjąć, że deklaracja bez inicjalizatora nadaje wartość 0.