{ File: scope2.pas } { Scopo: esemplificare le regole di visibilita' in PASCAL } program A; var x : integer; procedure B; var x : char; procedure C; { procedura locale a B } var x : real; begin { C } { SONO VISIBILI: - x : real - variabile locale - B, C - procedure non-locali - NIENT'ALTRO NOTA: la procedura D non e` visibile perche` non ancora dichiarata } end; { C } begin { B } { SONO VISIBILI: - x : char - variabile locale - C - procedura locale - B - procedura non-locale - NIENT'ALTRO NOTA: la procedura D non e` visibile perche` non ancora dichiarata } end; { B } procedure D; const x = 'a'; function C : integer; { funzione locale a D } const x = 10; begin { C } { SONO VISIBILI: - x : integer - costante locale - C :integer - funzione non locale - B, D - procedure non-locali - NIENT'ALTRO NOTA: la procedura B e` visibile perche` gia` dichiarata } end; { C } begin { D } { SONO VISIBILI: - x : char - costante locale - C : integer - funzione locale - B, D - procedure non-locali - NIENT'ALTRO NOTA: la procedura B e` visibile perche` gia` dichiarata } end; { D } begin { A } { SONO VISIBILI: - x : integer - variabile locale (globale) - B, D - procedure locali - NIENT'ALTRO } end. { A }