program silly(input, output);
{ TESTING LABELS
 label 1,2,3;
}
{ TESTING CONSTANTS
 const
  x = 1;
  y = -2;
  z = 'hello';
  q = +3.4;
  r = 3e10;
}
{ TESTING TYPES
}
  type
    x = 1 .. 10;
    days = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
    person = record lname: string; fname: string end;
    shared = record case boolean of true: (i: integer); false: (r: real) end;
    silly = packed record end;
    jester = ^silly;
    group = array[1..10] of int;
    work = array[days] of real;
{ TESTING VARIABLES
var
  i,j: integer;
  k: y .. x;
  l: -2 .. 4;
  m: (alpha, beta, gamma);
}
{ TESTING PROCEDURES AND FUNCTIONS
procedure foo; begin end;
function bar(x:integer): integer; begin bar := x; end;
}
begin
{ ASSORTED CODE
  a[0+3].b := c[2,3]^;
  foo;
  bar(2);
  a := f;
  a := f();
  a := f(1);
  3: if a then foo else foo;
  if b then bar;
}
{ TESTING REPEAT LOOP
  repeat x := x+1; y := y-1 until  x > y;
}
{ TESTING FOR LOOP
  for x := 1 to 10 do y := y+x;
}
{ TESTING WITH
  with a do b := 2; 
}
{ TESTING CASE
  case (x+1) of
    1, 2, 3: bar;
    4: bar;
  end;
}
end.

