PROGRAM main FUNCTION foo(x : INTEGER): INTEGER; BEGIN foo := x * x - 3; END PROCEDURE p(x,y: INTEGER); FUNCTION foo2(x:INTEGER): INTEGER; %% return value is INTEGER BEGIN foo := x * x; END BEGIN y := foo(x); WRITE(y); WRITESP(); END BEGIN VAR %% can be empty or completely missing ENDVAR BEGIN VAR w, x, z: INTEGER; ENDVAR x := foo(4); WRITE(x); WRITESP(); p(1, 2); WRITELN(); END END