procedure condition(fsys:symset);
  var relop:symbol;
   begin
    if sym=oddsym
     then
      begin
       getsym;
       expression(fsys);
       gen(opr,0,6)
      end
     else
      begin
       expression([eql,neq,lss,leq,gtr,geq]+fsys);
       if not(sym in [eql,neq,lss,leq,gtr,geq])
        then error(20)
        else
         begin
          relop|=sym;
          getsym;
          expression(fsys);
          case relop of
           eql:gen(opr,0,8);
           neq:gen(opr,0,9);
           lss:gen(opr,0,10);
           geq:gen(opr,0,11);
           gtr:gen(opr,0,12);
           leq:gen(opr,0,13);
          end
         end
      end
   end(*condition*);