Rozšiřte interpret jazyka aritmetických výrazů o konstrukci
let v1 = e1, v2 = e2, ... in ekde v1, v2, ... jsou proměnné, e1, e2, ... jsou výrazy, jejichž hodnota se dosadí za odpovídající proměnné ve výrazu e. Hodnotou celé konstrukce let je hodnota výrazu e.
Vstupem je textový soubor obsahující posloupnost aritmetických výrazů ukončených středníkem. Mezery, tabulátory a konce řádků mezi symboly se vynechávají. Čísla mohou být zapsána ve tvaru konstanty jazyka C. Proměnné jsou označeny identifikátory tvořenými posloupností písmen a číslic začínající písmenem.
Program vypíše na standardní výstup hodnoty vyhodnocených výrazů, vždy jeden výsledek na řádku. Je-li detekována syntaktická chyba, překlad se ukončí. Při výskytu jiné chyby se vypíše chybové hlášení.
Vstup:
let a = 5, b = a+1 in let a = 10 in a + b;
Výstup:
16