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 VAR %% can be empty or completely missing x : INTEGER; ENDVAR PROCEDURE p(x,y: INTEGER; VAR z: INTEGER); TYPE ENDTYPE FUNCTION foo(x : INTEGER): INTEGER; BEGIN foo := x * x - 3; END BEGIN y := foo(x); WRITE(y); WRITESP(); z := y; END BEGIN x := 4; p(5, 10, x); WRITE(x); WRITELN(); END