(* Generated by SimpleM backend *) MODULE BeFull; CONST Limit = 20; TYPE Range = [1..10]; Point = RECORD x, y : INTEGER END; Table = ARRAY Range OF INTEGER; VAR p : Point; t : Table; k, n : INTEGER; ch : CHAR; BEGIN p.x := 3; p.y := 4; FOR k := 1 TO 10 DO t[k] := k * k END; n := t[p.x] + t[p.y]; CASE n OF 1, 2 : ch := 'a' | 3..30 : ch := 'b' ELSE ch := 'z' END; REPEAT n := n + 1 UNTIL n >= Limit; LOOP IF n > 100 THEN EXIT END; n := n + 1 END; WITH p DO p.x := p.y END; IF (NOT (n < 0)) AND (ch # 'q') OR (16 = 10H) THEN n := 0 END END BeFull.