PROGRAM main CONST %% can be empty or completely missing cons360 = 360; %% a legal name on the left, a legal constant on the right myfloat = 3.6; ENDCONST TYPE %% can be empty or completely missing mytype = ARRAY[1..10] of INTEGER; ENDTYPE FUNCTION foo(x : INTEGER): INTEGER; BEGIN foo := x * x - 3; END PROCEDURE p(x,y: INTEGER; VAR z: FLOAT); TYPE ENDTYPE BEGIN y := x * x; WRITE(y); WRITESP(); z := y; END BEGIN VAR %% can be empty or completely missing x : ARRAY[-3 .. 5] of integer; y : mytype; ENDVAR x[5] := y[7] + cons360; BEGIN VAR w, x, z: INTEGER; f : FLOAT; ENDVAR x := foo(y[4]); p(f, y, x); WRITE(x); WRITELN(); END END