{ test of constants and modulo operator
 Semantic checking}
$c+
module test4_1
private
 integer a;
 constant z = 6;
 constant m = +4;
 constant t = false;
 constant neg = -3;

begin

 a := 55;

{ run time check divide by zero}
a := a\(a-55); { fails at runtime;}

{ semantic checks}
a := a + t; { type error compiler should recover;}
a := true;  { ditto}

m := m+1;  { fails at compile -- recover;}
t := true; { fails at compile -- recover;}

end. { four compile errors and one runtime error}
