= Variante 2 = == Operazioni estendibili == === Appunti vari === * Gli iterator sono da intendersi come esterni. * I nostri due visitor (!PrettyPrintVisitor e !InterpreterVisitor) conoscono direttamente la natura dell'albero di espressioni su cui lavorano. Al cliente e' chiaramente lasciata la possibilita' di usare un iterator. * Le Expression$NAME vanno arricchite con API di manipolazione specifica (i.e. `getter` e `setter`) per permettere all'iteratore di accedere in maniera indiretta ai campi di istanza. * Branch: diventeranno figlie delle Expression ? === Operazioni aggiunte === Questo e' il posto in cui rendere note le proprie scelte.